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..baf7820be 100644 --- a/packages/haiku-ui/budget.json +++ b/packages/haiku-ui/budget.json @@ -1,6 +1,6 @@ { "bundleGzipMaxBytes": 1048576, - "lastKnownGzipBytes": 857047, + "lastKnownGzipBytes": 857277, "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..3046d8b98 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,35 @@ 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 + 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" + } + } + 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/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/src/haiku-ui-html.ts b/packages/haiku/src/haiku-ui-html.ts index e505f47d7..2bad82cd3 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..66467db50 --- /dev/null +++ b/packages/haiku/src/orchestrator/prompts/intent/seal/pending_seal/index.ts @@ -0,0 +1,49 @@ +// 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..0a6a45f07 100644 --- a/packages/haiku/src/orchestrator/workflow/cursor.ts +++ b/packages/haiku/src/orchestrator/workflow/cursor.ts @@ -79,6 +79,7 @@ import { } from "../studio.js" import { engineHandleDriftEvents } from "./drift-handle-events.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) @@ -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 @@ -2101,15 +2113,32 @@ export function derivePosition(args: { ? (intentResult.data.mode as string) : "continuous" - // Sealed intent short-circuit: once intent.sealed_at is set, the - // intent is write-locked — no further cursor work. Architectural - // invariant: sealed = terminal forever, no walk. + // Sealed intent short-circuit: a sealed stamp is terminal — BUT only + // once the work has actually landed on the default branch. A sealed + // stamp on an intent whose `haiku//main` is still ahead of the + // default branch (a premature seal, or a legacy seal from before the + // merge gate) is NOT done: fall through to the full walk so a pickup + // re-audit runs (the delivery-verifier re-checks the PR) and the + // terminal re-emits `pending_seal` until the merge lands. Authoritative + // (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 ) { - return { track: "sealed", action: { kind: "sealed" } } + sealedDelivery = intentDeliveryState(slug) + if (!sealedDelivery.applicable || sealedDelivery.merged) { + return { track: "sealed", action: { kind: "sealed" } } + } + // 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 @@ -2361,16 +2390,40 @@ export function derivePosition(args: { // file's existence on disk is the seen-this-cycle signal, so // a re-tick after the agent wrote it falls through to // seal_intent. - if (intentResult.data.sealed_at == null) { - if (isReflectionEnabled(intentDir)) { - const reflectionPath = join(intentDir, "reflection.md") - if (!existsSync(reflectionPath)) { - return { - track: "intent", - action: { kind: "record_reflection" }, - } + // Reflection runs once, for a not-yet-sealed intent, before the + // merge gate (a sealed-but-unmerged intent that fell through the + // short-circuit already reflected — reflection.md exists / sealed_at + // is set). + if (intentResult.data.sealed_at == null && isReflectionEnabled(intentDir)) { + const reflectionPath = join(intentDir, "reflection.md") + if (!existsSync(reflectionPath)) { + return { + track: "intent", + action: { kind: "record_reflection" }, } } + } + // 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`. This fires + // whether or not `sealed_at` is already stamped: a premature/legacy + // seal falls through the short-circuit above and is held here too, so + // a pickup re-audits the PR until the merge lands. Authoritative + // (squash-merge-aware) read. Inapplicable in filesystem mode / when no + // default branch resolves → `merged` is true and the seal proceeds as + // before. + const delivery = sealedDelivery ?? intentDeliveryState(slug) + if (delivery.applicable && !delivery.merged) { + return { + track: "intent", + action: { + kind: "pending_seal", + default_branch: delivery.defaultBranch, + }, + } + } + if (intentResult.data.sealed_at == null) { 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/parser.ts b/packages/haiku/src/parser.ts index ad81ca466..bd856d732 100644 --- a/packages/haiku/src/parser.ts +++ b/packages/haiku/src/parser.ts @@ -835,6 +835,17 @@ 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. + // 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) const withinIntent = diff --git a/packages/haiku/src/state-tools.ts b/packages/haiku/src/state-tools.ts index 99c5a99d6..1c7ab1a14 100644 --- a/packages/haiku/src/state-tools.ts +++ b/packages/haiku/src/state-tools.ts @@ -43,6 +43,8 @@ import { findCurrentStage, nextHatForUnit, } from "./orchestrator/workflow/cursor.js" +import { isAwaitingMerge } from "./orchestrator/workflow/intent-delivery.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 +2873,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. @@ -9207,11 +9215,19 @@ 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" + // 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 || activeStage === null) + derivedStatus = isAwaitingMerge(slug, { localOnly: true }) + ? "pending_seal" + : "completed" + else derivedStatus = "active" const base: Record = { slug, studio: data.studio, @@ -12087,7 +12103,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..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] @@ -159,6 +165,7 @@ const INTENT_COMPLETION_KINDS = new Set([ "intent_review", "record_reflection", "seal_intent", + "pending_seal", "sealed", ]) @@ -266,6 +273,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 } @@ -579,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, diff --git a/packages/haiku/src/tools/orchestrator/haiku_run_next.ts b/packages/haiku/src/tools/orchestrator/haiku_run_next.ts index 63fa0db58..88b390a17 100644 --- a/packages/haiku/src/tools/orchestrator/haiku_run_next.ts +++ b/packages/haiku/src/tools/orchestrator/haiku_run_next.ts @@ -44,6 +44,7 @@ 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, @@ -1319,6 +1320,53 @@ 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 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. 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") + 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/cursor-walk.test.mjs b/packages/haiku/test/cursor-walk.test.mjs index fba14acc5..b0538b395 100644 --- a/packages/haiku/test/cursor-walk.test.mjs +++ b/packages/haiku/test/cursor-walk.test.mjs @@ -1543,28 +1543,13 @@ test("cursor: brand-new intent (no stages dir at all) → elaborate on first dec // 2026-05-08 — design_direction gate is now a discovery agent, covered // by the discovery_required tests above. -test("cursor: brand-new intent with sealed_at already set → sealed (sanity)", async () => { - if (!HAS_GIT) return - await withTmpRepo( - "cursor-pre-stage-sealed", - async ({ repoRoot, intentDir, slug }) => { - makeStudio({ repoRoot, studio: "test" }) - makeIntent({ - intentDir, - slug, - studio: "test", - sealed: true, - approvals: { - spec: { at: "2026-05-06T00:00:00Z" }, - continuity: { at: "2026-05-06T00:00:00Z" }, - user: { at: "2026-05-06T00:00:00Z" }, - }, - }) - const action = await runTick(repoRoot, slug) - assert.strictEqual(action.action, "sealed") - }, - ) -}) +// NOTE (2026-05-28): the old "sealed_at unconditionally → sealed" sanity +// tests were removed. The merge gate made the sealed short-circuit +// conditional on the work having landed on the default branch, so a +// degenerate sealed-but-unmerged fixture (no units, no verified_at) now +// correctly falls through the short-circuit. The realistic sealed paths — +// sealed+merged → sealed, and sealed-but-unmerged → pending_seal — are +// covered on a real completed fixture in seal-intent-commits.test.mjs. test("cursor: intent with FB on a stage that hasn't started yet → start_feedback_hat preempts", async () => { if (!HAS_GIT) return @@ -1662,27 +1647,7 @@ test("cursor: intent restricted to subset of studio stages does NOT surface unsc }) // ── Sealed intent ──────────────────────────────────────────────────── - -test("cursor: sealed intent → sealed action", async () => { - if (!HAS_GIT) return - await withTmpRepo("cursor-sealed", async ({ repoRoot, intentDir, slug }) => { - makeStudio({ repoRoot, studio: "test" }) - makeIntent({ - intentDir, - slug, - studio: "test", - approvals: { - spec: { at: "t" }, - continuity: { at: "t" }, - user: { at: "t" }, - }, - sealed: true, - }) - const action = await runTick(repoRoot, slug) - assert.strictEqual( - action.action, - "sealed", - `sealed intent should return sealed; got: ${action.action}`, - ) - }) -}) +// (See the note above the FB-preempt test: the degenerate sealed-state +// sanity tests were removed when the merge gate made the sealed +// short-circuit conditional on delivery; realistic coverage lives in +// seal-intent-commits.test.mjs.) 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/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 }) + } +}) 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/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) 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..96c195b11 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,77 @@ 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", + ) + + // LEGACY guard: an intent that ALREADY carries a sealed_at stamp + // (sealed before the merge gate, or a premature seal) must STILL hold + // at pending_seal while unmerged — the cursor's sealed short-circuit + // must NOT fire until the work lands. This is what lets a pickup + // re-audit the PR instead of treating the intent as done. + { + const p = matter(readFileSync(intentMd, "utf8")) + writeFileSync( + intentMd, + matter.stringify(p.content, { + ...p.data, + sealed_at: "2026-05-24T00:00:00Z", + }), + ) + const legacyHeld = (await tick()).action + assert.equal( + legacyHeld, + "pending_seal", + `a sealed-but-unmerged intent must stay held (not short-circuit to sealed), got: ${legacyHeld}`, + ) + // Clear it so the seal-commit flow below exercises the real + // seal_intent stamp + commit path. + const p2 = matter(readFileSync(intentMd, "utf8")) + const { sealed_at: _drop, ...rest } = p2.data + writeFileSync(intentMd, matter.stringify(p2.content, rest)) + } + + // 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/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/plugin/bin/haiku.mjs b/plugin/bin/haiku.mjs index 89e3b57bf..8db793422 100755 --- a/plugin/bin/haiku.mjs +++ b/plugin/bin/haiku.mjs @@ -1,77 +1,77 @@ #!/usr/bin/env node import{createRequire}from"module";const require=createRequire(import.meta.url); -var FCt=Object.create;var WU=Object.defineProperty;var jCt=Object.getOwnPropertyDescriptor;var HCt=Object.getOwnPropertyNames;var qCt=Object.getPrototypeOf,BCt=Object.prototype.hasOwnProperty;var Z=(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)WU(e,n,{get:t[n],enumerable:!0})},vve=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of HCt(t))!BCt.call(e,i)&&i!==n&&WU(e,i,{get:()=>t[i],enumerable:!(r=jCt(t,i))||r.enumerable});return e};var Se=(e,t,n)=>(n=e!=null?FCt(qCt(e)):{},vve(t||!e||!e.__esModule?WU(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>vve(WU({},"__esModule",{value:!0}),e);var om,$6=v(()=>{om="1.9.1"});function GCt(e){let t=new Set([e]),n=new Set,r=e.match(Ave);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(Ave);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 Ave,Rve,wve=v(()=>{$6();Ave=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;Rve=GCt(om)});function Ap(e,t,n,r=!1){var i;let s=eO[$x]=(i=eO[$x])!==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 el(e){var t,n;let r=(t=eO[$x])===null||t===void 0?void 0:t.version;if(!(!r||!Rve(r)))return(n=eO[$x])===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=eO[$x];n&&delete n[e]}var zCt,$x,eO,ub=v(()=>{$6();wve();zCt=om.split(".")[0],$x=Symbol.for(`opentelemetry.js.api.${zCt}`),eO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function tO(e,t,n){let r=el("diag");if(r)return r[e](t,...n)}var KU,kve=v(()=>{ub();KU=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return tO("debug",this._namespace,t)}error(...t){return tO("error",this._namespace,t)}info(...t){return tO("info",this._namespace,t)}warn(...t){return tO("warn",this._namespace,t)}verbose(...t){return tO("verbose",this._namespace,t)}}});var po,ZU=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"})(po||(po={}))});function Ive(e,t){epo.ALL&&(e=po.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",po.ERROR),warn:n("warn",po.WARN),info:n("info",po.INFO),debug:n("debug",po.DEBUG),verbose:n("verbose",po.VERBOSE)}}var xve=v(()=>{ZU()});var VCt,No,lb=v(()=>{kve();xve();ZU();ub();VCt="diag",No=class e{static instance(){return this._instance||(this._instance=new e),this._instance}constructor(){function t(i){return function(...s){let o=el("diag");if(o)return o[i](...s)}}let n=this,r=(i,s={logLevel:po.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=el("diag"),l=Ive((a=s.logLevel)!==null&&a!==void 0?a:po.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(VCt,n)},n.createComponentLogger=i=>new KU(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var YU,Ove=v(()=>{YU=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 Nve,Pve=v(()=>{Nve=Symbol("BaggageEntryMetadata")});function Cve(e={}){return new YU(new Map(Object.entries(e)))}function Mve(e){return typeof e!="string"&&(WCt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:Nve,toString(){return e}}}var WCt,e8=v(()=>{lb();Ove();Pve();WCt=No.instance()});function tl(e){return Symbol.for(e)}var t8,rA,nO=v(()=>{t8=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 t8});var n8,r8,JU,Dve=v(()=>{n8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],r8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(r8[t]=console[t])}JU=class{constructor(){function t(n){return function(...r){let i=r8[n];if(typeof i!="function"&&(i=r8.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{i8=class{constructor(){}createGauge(t,n){return ZCt}createHistogram(t,n){return YCt}createCounter(t,n){return KCt}createUpDownCounter(t,n){return JCt}createObservableGauge(t,n){return QCt}createObservableCounter(t,n){return XCt}createObservableUpDownCounter(t,n){return $Ct}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},iA=class{},s8=class extends iA{add(t,n){}},o8=class extends iA{add(t,n){}},a8=class extends iA{record(t,n){}},c8=class extends iA{record(t,n){}},rO=class{addCallback(t){}removeCallback(t){}},u8=class extends rO{},l8=class extends rO{},d8=class extends rO{},f8=new i8,KCt=new s8,ZCt=new a8,YCt=new c8,JCt=new o8,XCt=new u8,QCt=new l8,$Ct=new d8});var XU,Uve=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(XU||(XU={}))});var QU,$U,h8=v(()=>{QU={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},$U={set(e,t,n){e!=null&&(e[t]=n)}}});var eF,Fve=v(()=>{nO();eF=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 m8,eMt,wp,iO=v(()=>{Fve();ub();lb();m8="context",eMt=new eF,wp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(m8,t,No.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 el(m8)||eMt}disable(){this._getContextManager().disable(),Rp(m8,No.instance())}}});var ja,g8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(ja||(ja={}))});var sO,db,tF,nF=v(()=>{g8();sO="0000000000000000",db="00000000000000000000000000000000",tF={traceId:db,spanId:sO,traceFlags:ja.NONE}});var kp,rF=v(()=>{nF();kp=class{constructor(t=tF){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 iF(e){return e.getValue(y8)||void 0}function jve(){return iF(wp.getInstance().active())}function oO(e,t){return e.setValue(y8,t)}function Hve(e){return e.deleteValue(y8)}function qve(e,t){return oO(e,new kp(t))}function sF(e){var t;return(t=iF(e))===null||t===void 0?void 0:t.spanContext()}var y8,S8=v(()=>{nO();rF();iO();y8=tl("OpenTelemetry Context Key SPAN")});function Bve(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{nF();rF();oF=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 tMt(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 _8,sA,T8=v(()=>{iO();S8();rF();aF();_8=wp.getInstance(),sA=class{startSpan(t,n,r=_8.active()){if(!!n?.root)return new kp;let s=r&&sF(r);return tMt(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??_8.active(),u=this.startSpan(t,s,c),l=oO(c,u);return _8.with(l,a,void 0,u)}}});var nMt,oA,v8=v(()=>{T8();nMt=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):nMt}}});var cF,zve=v(()=>{T8();cF=class{getTracer(t,n,r){return new sA}}});var rMt,fb,A8=v(()=>{v8();zve();rMt=new cF,fb=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:rMt}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 uF,Vve=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(uF||(uF={}))});var $r,Wve=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,Kve=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function Zve(e){return oMt.test(e)}function Yve(e){return aMt.test(e)&&!cMt.test(e)}var R8,iMt,sMt,oMt,aMt,cMt,Jve=v(()=>{R8="[_0-9a-z-*/]",iMt=`[a-z]${R8}{0,255}`,sMt=`[a-z0-9]${R8}{0,240}@[a-z]${R8}{0,13}`,oMt=new RegExp(`^(?:${iMt}|${sMt})$`),aMt=/^[ -~]{0,255}[!-~]$/,cMt=/,|=/});var Xve,uMt,Qve,$ve,lF,eAe=v(()=>{Jve();Xve=32,uMt=512,Qve=",",$ve="=",lF=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+$ve+this.get(n)),t),[]).join(Qve)}_parse(t){t.length>uMt||(this._internalState=t.split(Qve).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf($ve);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);Zve(o)&&Yve(a)&&n.set(o,a)}return n},new Map),this._internalState.size>Xve&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,Xve))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function tAe(e){return new lF(e)}var nAe=v(()=>{eAe()});var Ve,rAe=v(()=>{iO();Ve=wp.getInstance()});var nl,iAe=v(()=>{lb();nl=No.instance()});var w8,sAe,oAe=v(()=>{p8();w8=class{getMeter(t,n,r){return f8}},sAe=new w8});var k8,dF,aAe=v(()=>{oAe();ub();lb();k8="metrics",dF=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(k8,t,No.instance())}getMeterProvider(){return el(k8)||sAe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){Rp(k8,No.instance())}}});var I8,cAe=v(()=>{aAe();I8=dF.getInstance()});var fF,uAe=v(()=>{fF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function O8(e){return e.getValue(x8)||void 0}function lAe(){return O8(wp.getInstance().active())}function dAe(e,t){return e.setValue(x8,t)}function fAe(e){return e.deleteValue(x8)}var x8,pAe=v(()=>{iO();nO();x8=tl("OpenTelemetry Baggage Key")});var N8,lMt,pF,hAe=v(()=>{ub();uAe();h8();pAe();e8();lb();N8="propagation",lMt=new fF,pF=class e{constructor(){this.createBaggage=Cve,this.getBaggage=O8,this.getActiveBaggage=lAe,this.setBaggage=dAe,this.deleteBaggage=fAe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(N8,t,No.instance())}inject(t,n,r=$U){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=QU){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){Rp(N8,No.instance())}_getGlobalPropagator(){return el(N8)||lMt}}});var Yd,mAe=v(()=>{hAe();Yd=pF.getInstance()});var P8,hF,gAe=v(()=>{ub();A8();aF();S8();lb();P8="trace",hF=class e{constructor(){this._proxyTracerProvider=new fb,this.wrapSpanContext=Gve,this.isSpanContextValid=am,this.deleteSpan=Hve,this.getSpan=iF,this.getActiveSpan=jve,this.getSpanContext=sF,this.setSpan=oO,this.setSpanContext=qve}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(P8,this._proxyTracerProvider,No.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return el(P8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){Rp(P8,No.instance()),this._proxyTracerProvider=new fb}}});var Ft,yAe=v(()=>{gAe();Ft=hF.getInstance()});var Ye={};Rr(Ye,{DiagConsoleLogger:()=>JU,DiagLogLevel:()=>po,INVALID_SPANID:()=>sO,INVALID_SPAN_CONTEXT:()=>tF,INVALID_TRACEID:()=>db,ProxyTracer:()=>oA,ProxyTracerProvider:()=>fb,ROOT_CONTEXT:()=>rA,SamplingDecision:()=>uF,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>ja,ValueType:()=>XU,baggageEntryMetadataFromString:()=>Mve,context:()=>Ve,createContextKey:()=>tl,createNoopMeter:()=>Lve,createTraceState:()=>tAe,default:()=>dMt,defaultTextMapGetter:()=>QU,defaultTextMapSetter:()=>$U,diag:()=>nl,isSpanContextValid:()=>am,isValidSpanId:()=>b8,isValidTraceId:()=>E8,metrics:()=>I8,propagation:()=>Yd,trace:()=>Ft});var dMt,Ce=v(()=>{e8();nO();Dve();ZU();p8();Uve();h8();v8();A8();Vve();Wve();Kve();g8();nAe();aF();nF();rAe();iAe();cAe();mAe();yAe();dMt={context:Ve,diag:nl,metrics:I8,propagation:Yd,trace:Ft}});var aO=w(cy=>{"use strict";Object.defineProperty(cy,"__esModule",{value:!0});cy.isTracingSuppressed=cy.unsuppressTracing=cy.suppressTracing=void 0;var fMt=(Ce(),ke(Ye)),C8=(0,fMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function pMt(e){return e.setValue(C8,!0)}cy.suppressTracing=pMt;function hMt(e){return e.deleteValue(C8)}cy.unsuppressTracing=hMt;function mMt(e){return e.getValue(C8)===!0}cy.isTracingSuppressed=mMt});var M8=w(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.BAGGAGE_MAX_TOTAL_LENGTH=Ha.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=Ha.BAGGAGE_MAX_NAME_VALUE_PAIRS=Ha.BAGGAGE_HEADER=Ha.BAGGAGE_ITEMS_SEPARATOR=Ha.BAGGAGE_PROPERTIES_SEPARATOR=Ha.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;Ha.BAGGAGE_KEY_PAIR_SEPARATOR="=";Ha.BAGGAGE_PROPERTIES_SEPARATOR=";";Ha.BAGGAGE_ITEMS_SEPARATOR=",";Ha.BAGGAGE_HEADER="baggage";Ha.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;Ha.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;Ha.BAGGAGE_MAX_TOTAL_LENGTH=8192});var D8=w(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});Ip.parseKeyPairsIntoRecord=Ip.parsePairKeyValue=Ip.getKeyPairs=Ip.serializeKeyPairs=void 0;var gMt=(Ce(),ke(Ye)),aA=M8();function yMt(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=yMt;function SMt(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=SMt;function SAe(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=SAe(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}Ip.parseKeyPairsIntoRecord=EMt});var EAe=w(mF=>{"use strict";Object.defineProperty(mF,"__esModule",{value:!0});mF.W3CBaggagePropagator=void 0;var L8=(Ce(),ke(Ye)),bMt=aO(),pb=M8(),U8=D8(),F8=class{inject(t,n,r){let i=L8.propagation.getBaggage(t);if(!i||(0,bMt.isTracingSuppressed)(t))return;let s=(0,U8.getKeyPairs)(i).filter(a=>a.length<=pb.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,pb.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,U8.serializeKeyPairs)(s);o.length>0&&r.set(n,pb.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,pb.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(pb.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(pb.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,U8.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:L8.propagation.setBaggage(t,L8.propagation.createBaggage(o))}fields(){return[pb.BAGGAGE_HEADER]}};mF.W3CBaggagePropagator=F8});var bAe=w(gF=>{"use strict";Object.defineProperty(gF,"__esModule",{value:!0});gF.AnchoredClock=void 0;var j8=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}};gF.AnchoredClock=j8});var RAe=w(uy=>{"use strict";Object.defineProperty(uy,"__esModule",{value:!0});uy.isAttributeValue=uy.isAttributeKey=uy.sanitizeAttributes=void 0;var _Ae=(Ce(),ke(Ye));function _Mt(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(!TAe(n)){_Ae.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!vAe(r)){_Ae.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}uy.sanitizeAttributes=_Mt;function TAe(e){return typeof e=="string"&&e!==""}uy.isAttributeKey=TAe;function vAe(e){return e==null?!0:Array.isArray(e)?TMt(e):AAe(typeof e)}uy.isAttributeValue=vAe;function TMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(AAe(r)){t=r;continue}return!1}return!1}}return!0}function AAe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var H8=w(yF=>{"use strict";Object.defineProperty(yF,"__esModule",{value:!0});yF.loggingErrorHandler=void 0;var vMt=(Ce(),ke(Ye));function AMt(){return e=>{vMt.diag.error(RMt(e))}}yF.loggingErrorHandler=AMt;function RMt(e){return typeof e=="string"?e:JSON.stringify(wMt(e))}function wMt(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 kAe=w(cA=>{"use strict";Object.defineProperty(cA,"__esModule",{value:!0});cA.globalErrorHandler=cA.setGlobalErrorHandler=void 0;var kMt=H8(),wAe=(0,kMt.loggingErrorHandler)();function IMt(e){wAe=e}cA.setGlobalErrorHandler=IMt;function xMt(e){try{wAe(e)}catch{}}cA.globalErrorHandler=xMt});var NAe=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.getStringListFromEnv=xp.getBooleanFromEnv=xp.getStringFromEnv=xp.getNumberFromEnv=void 0;var IAe=(Ce(),ke(Ye)),xAe=Z("util");function OMt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){IAe.diag.warn(`Unknown value ${(0,xAe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}xp.getNumberFromEnv=OMt;function OAe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}xp.getStringFromEnv=OAe;function NMt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||IAe.diag.warn(`Unknown value ${(0,xAe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}xp.getBooleanFromEnv=NMt;function PMt(e){return OAe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}xp.getStringListFromEnv=PMt});var PAe=w(SF=>{"use strict";Object.defineProperty(SF,"__esModule",{value:!0});SF._globalThis=void 0;SF._globalThis=globalThis});var CAe=w(EF=>{"use strict";Object.defineProperty(EF,"__esModule",{value:!0});EF.VERSION=void 0;EF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var MAe,DAe,LAe,UAe,FAe,jAe,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,ERe,bRe,_Re,TRe,vRe,ARe,RRe,wRe,kRe,IRe,xRe,ORe,NRe,PRe,CRe,MRe,DRe,LRe,URe,FRe,jRe,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,Ewe,bwe,_we,Twe,vwe,Awe,Rwe,wwe,kwe,Iwe,xwe,Owe,Nwe,Pwe,Cwe,Mwe,Dwe,Lwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,Gwe,zwe,Vwe,Wwe,Kwe,Zwe,Ywe,Jwe,Xwe,Qwe,$we,CMt,B8,MMt,DMt,LMt,UMt,G8,FMt,jMt,HMt,qMt,BMt,GMt,zMt,VMt,WMt,KMt,ZMt,YMt,JMt,XMt,QMt,$Mt,eDt,tDt,z8,nDt,rDt,iDt,sDt,oDt,aDt,cDt,uDt,lDt,dDt,fDt,pDt,V8,hDt,mDt,W8,K8,gDt,yDt,SDt,EDt,bDt,_Dt,TDt,vDt,ADt,RDt,wDt,kDt,IDt,xDt,ODt,NDt,PDt,cO,uA,Z8,CDt,MDt,hb,DDt,LDt,UDt,FDt,Y8,J8,jDt,X8,HDt,qDt,BDt,GDt,zDt,VDt,WDt,KDt,ZDt,YDt,JDt,XDt,QDt,$Dt,eLt,tLt,nLt,rLt,iLt,sLt,oLt,aLt,cLt,Q8,uLt,lLt,dLt,fLt,pLt,hLt,mLt,gLt,yLt,SLt,ELt,bLt,_Lt,TLt,vLt,ALt,RLt,wLt,kLt,$8,ILt,eJ,xLt,OLt,NLt,PLt,CLt,MLt,DLt,LLt,ULt,eke,tke,nke,rke,ike,ske,oke,ake,cke,uke,lke,dke,fke,pke,hke,mke,gke,yke,Ske,Eke,bke,_ke,Tke,vke,Ake,Rke,wke,kke,Ike,xke,Oke,Nke,Pke,Cke,Mke,Dke,Lke,Uke,Fke,jke,Hke,qke,Bke,Gke,zke,Vke,Wke,FLt,jLt,HLt,qLt,BLt,GLt,zLt,VLt,WLt,KLt,ZLt,YLt,JLt,XLt,QLt,$Lt,e1t,t1t,n1t,r1t,i1t,s1t,o1t,a1t,c1t,u1t,l1t,d1t,f1t,p1t,h1t,m1t,g1t,y1t,S1t,E1t,b1t,_1t,T1t,v1t,A1t,R1t,w1t,k1t,I1t,x1t,O1t,N1t,Kke,Zke,Yke,Jke,Xke,Qke,$ke,eIe,tIe,nIe,rIe,P1t,C1t,M1t,D1t,L1t,U1t,F1t,j1t,H1t,q1t,B1t,G1t,iIe,sIe,oIe,aIe,cIe,z1t,V1t,W1t,K1t,Z1t,Y1t,uIe,lIe,dIe,J1t,X1t,Q1t,$1t,fIe,pIe,hIe,mIe,eUt,tUt,nUt,rUt,iUt,gIe,yIe,SIe,EIe,bIe,_Ie,TIe,sUt,oUt,aUt,cUt,uUt,lUt,dUt,fUt,vIe,AIe,RIe,wIe,kIe,pUt,hUt,mUt,gUt,yUt,SUt,IIe,xIe,OIe,NIe,PIe,CIe,MIe,DIe,LIe,UIe,FIe,jIe,HIe,qIe,BIe,GIe,zIe,VIe,WIe,KIe,ZIe,EUt,bUt,_Ut,TUt,vUt,AUt,RUt,wUt,kUt,IUt,xUt,OUt,NUt,PUt,CUt,MUt,DUt,LUt,UUt,FUt,jUt,HUt,YIe,JIe,XIe,QIe,$Ie,qUt,BUt,GUt,zUt,VUt,WUt,e0e,t0e,KUt,ZUt,YUt,n0e,r0e,JUt,XUt,QUt,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e,f0e,p0e,h0e,m0e,g0e,y0e,S0e,E0e,b0e,$Ut,eFt,tFt,nFt,rFt,iFt,sFt,oFt,aFt,cFt,uFt,lFt,dFt,fFt,pFt,hFt,mFt,gFt,_0e,T0e,yFt,SFt,EFt,v0e=v(()=>{q8();MAe="aws.lambda.invoked_arn",DAe="db.system",LAe="db.connection_string",UAe="db.user",FAe="db.jdbc.driver_classname",jAe="db.name",HAe="db.statement",qAe="db.operation",BAe="db.mssql.instance_name",GAe="db.cassandra.keyspace",zAe="db.cassandra.page_size",VAe="db.cassandra.consistency_level",WAe="db.cassandra.table",KAe="db.cassandra.idempotence",ZAe="db.cassandra.speculative_execution_count",YAe="db.cassandra.coordinator.id",JAe="db.cassandra.coordinator.dc",XAe="db.hbase.namespace",QAe="db.redis.database_index",$Ae="db.mongodb.collection",eRe="db.sql.table",tRe="exception.type",nRe="exception.message",rRe="exception.stacktrace",iRe="exception.escaped",sRe="faas.trigger",oRe="faas.execution",aRe="faas.document.collection",cRe="faas.document.operation",uRe="faas.document.time",lRe="faas.document.name",dRe="faas.time",fRe="faas.cron",pRe="faas.coldstart",hRe="faas.invoked_name",mRe="faas.invoked_provider",gRe="faas.invoked_region",yRe="net.transport",SRe="net.peer.ip",ERe="net.peer.port",bRe="net.peer.name",_Re="net.host.ip",TRe="net.host.port",vRe="net.host.name",ARe="net.host.connection.type",RRe="net.host.connection.subtype",wRe="net.host.carrier.name",kRe="net.host.carrier.mcc",IRe="net.host.carrier.mnc",xRe="net.host.carrier.icc",ORe="peer.service",NRe="enduser.id",PRe="enduser.role",CRe="enduser.scope",MRe="thread.id",DRe="thread.name",LRe="code.function",URe="code.namespace",FRe="code.filepath",jRe="code.lineno",HRe="http.method",qRe="http.url",BRe="http.target",GRe="http.host",zRe="http.scheme",VRe="http.status_code",WRe="http.flavor",KRe="http.user_agent",ZRe="http.request_content_length",YRe="http.request_content_length_uncompressed",JRe="http.response_content_length",XRe="http.response_content_length_uncompressed",QRe="http.server_name",$Re="http.route",ewe="http.client_ip",twe="aws.dynamodb.table_names",nwe="aws.dynamodb.consumed_capacity",rwe="aws.dynamodb.item_collection_metrics",iwe="aws.dynamodb.provisioned_read_capacity",swe="aws.dynamodb.provisioned_write_capacity",owe="aws.dynamodb.consistent_read",awe="aws.dynamodb.projection",cwe="aws.dynamodb.limit",uwe="aws.dynamodb.attributes_to_get",lwe="aws.dynamodb.index_name",dwe="aws.dynamodb.select",fwe="aws.dynamodb.global_secondary_indexes",pwe="aws.dynamodb.local_secondary_indexes",hwe="aws.dynamodb.exclusive_start_table",mwe="aws.dynamodb.table_count",gwe="aws.dynamodb.scan_forward",ywe="aws.dynamodb.segment",Swe="aws.dynamodb.total_segments",Ewe="aws.dynamodb.count",bwe="aws.dynamodb.scanned_count",_we="aws.dynamodb.attribute_definitions",Twe="aws.dynamodb.global_secondary_index_updates",vwe="messaging.system",Awe="messaging.destination",Rwe="messaging.destination_kind",wwe="messaging.temp_destination",kwe="messaging.protocol",Iwe="messaging.protocol_version",xwe="messaging.url",Owe="messaging.message_id",Nwe="messaging.conversation_id",Pwe="messaging.message_payload_size_bytes",Cwe="messaging.message_payload_compressed_size_bytes",Mwe="messaging.operation",Dwe="messaging.consumer_id",Lwe="messaging.rabbitmq.routing_key",Uwe="messaging.kafka.message_key",Fwe="messaging.kafka.consumer_group",jwe="messaging.kafka.client_id",Hwe="messaging.kafka.partition",qwe="messaging.kafka.tombstone",Bwe="rpc.system",Gwe="rpc.service",zwe="rpc.method",Vwe="rpc.grpc.status_code",Wwe="rpc.jsonrpc.version",Kwe="rpc.jsonrpc.request_id",Zwe="rpc.jsonrpc.error_code",Ywe="rpc.jsonrpc.error_message",Jwe="message.type",Xwe="message.id",Qwe="message.compressed_size",$we="message.uncompressed_size",CMt=MAe,B8=DAe,MMt=LAe,DMt=UAe,LMt=FAe,UMt=jAe,G8=HAe,FMt=qAe,jMt=BAe,HMt=GAe,qMt=zAe,BMt=VAe,GMt=WAe,zMt=KAe,VMt=ZAe,WMt=YAe,KMt=JAe,ZMt=XAe,YMt=QAe,JMt=$Ae,XMt=eRe,QMt=tRe,$Mt=nRe,eDt=rRe,tDt=iRe,z8=sRe,nDt=oRe,rDt=aRe,iDt=cRe,sDt=uRe,oDt=lRe,aDt=dRe,cDt=fRe,uDt=pRe,lDt=hRe,dDt=mRe,fDt=gRe,pDt=yRe,V8=SRe,hDt=ERe,mDt=bRe,W8=_Re,K8=TRe,gDt=vRe,yDt=ARe,SDt=RRe,EDt=wRe,bDt=kRe,_Dt=IRe,TDt=xRe,vDt=ORe,ADt=NRe,RDt=PRe,wDt=CRe,kDt=MRe,IDt=DRe,xDt=LRe,ODt=URe,NDt=FRe,PDt=jRe,cO=HRe,uA=qRe,Z8=BRe,CDt=GRe,MDt=zRe,hb=VRe,DDt=WRe,LDt=KRe,UDt=ZRe,FDt=YRe,Y8=JRe,J8=XRe,jDt=QRe,X8=$Re,HDt=ewe,qDt=twe,BDt=nwe,GDt=rwe,zDt=iwe,VDt=swe,WDt=owe,KDt=awe,ZDt=cwe,YDt=uwe,JDt=lwe,XDt=dwe,QDt=fwe,$Dt=pwe,eLt=hwe,tLt=mwe,nLt=gwe,rLt=ywe,iLt=Swe,sLt=Ewe,oLt=bwe,aLt=_we,cLt=Twe,Q8=vwe,uLt=Awe,lLt=Rwe,dLt=wwe,fLt=kwe,pLt=Iwe,hLt=xwe,mLt=Owe,gLt=Nwe,yLt=Pwe,SLt=Cwe,ELt=Mwe,bLt=Dwe,_Lt=Lwe,TLt=Uwe,vLt=Fwe,ALt=jwe,RLt=Hwe,wLt=qwe,kLt=Bwe,$8=Gwe,ILt=zwe,eJ=Vwe,xLt=Wwe,OLt=Kwe,NLt=Zwe,PLt=Ywe,CLt=Jwe,MLt=Xwe,DLt=Qwe,LLt=$we,ULt=ws([MAe,DAe,LAe,UAe,FAe,jAe,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,ERe,bRe,_Re,TRe,vRe,ARe,RRe,wRe,kRe,IRe,xRe,ORe,NRe,PRe,CRe,MRe,DRe,LRe,URe,FRe,jRe,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,Ewe,bwe,_we,Twe,vwe,Awe,Rwe,wwe,kwe,Iwe,xwe,Owe,Nwe,Pwe,Cwe,Mwe,Dwe,Lwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,Gwe,zwe,Vwe,Wwe,Kwe,Zwe,Ywe,Jwe,Xwe,Qwe,$we]),eke="other_sql",tke="mssql",nke="mysql",rke="oracle",ike="db2",ske="postgresql",oke="redshift",ake="hive",cke="cloudscape",uke="hsqldb",lke="progress",dke="maxdb",fke="hanadb",pke="ingres",hke="firstsql",mke="edb",gke="cache",yke="adabas",Ske="firebird",Eke="derby",bke="filemaker",_ke="informix",Tke="instantdb",vke="interbase",Ake="mariadb",Rke="netezza",wke="pervasive",kke="pointbase",Ike="sqlite",xke="sybase",Oke="teradata",Nke="vertica",Pke="h2",Cke="coldfusion",Mke="cassandra",Dke="hbase",Lke="mongodb",Uke="redis",Fke="couchbase",jke="couchdb",Hke="cosmosdb",qke="dynamodb",Bke="neo4j",Gke="geode",zke="elasticsearch",Vke="memcached",Wke="cockroachdb",FLt=eke,jLt=tke,HLt=nke,qLt=rke,BLt=ike,GLt=ske,zLt=oke,VLt=ake,WLt=cke,KLt=uke,ZLt=lke,YLt=dke,JLt=fke,XLt=pke,QLt=hke,$Lt=mke,e1t=gke,t1t=yke,n1t=Ske,r1t=Eke,i1t=bke,s1t=_ke,o1t=Tke,a1t=vke,c1t=Ake,u1t=Rke,l1t=wke,d1t=kke,f1t=Ike,p1t=xke,h1t=Oke,m1t=Nke,g1t=Pke,y1t=Cke,S1t=Mke,E1t=Dke,b1t=Lke,_1t=Uke,T1t=Fke,v1t=jke,A1t=Hke,R1t=qke,w1t=Bke,k1t=Gke,I1t=zke,x1t=Vke,O1t=Wke,N1t=ws([eke,tke,nke,rke,ike,ske,oke,ake,cke,uke,lke,dke,fke,pke,hke,mke,gke,yke,Ske,Eke,bke,_ke,Tke,vke,Ake,Rke,wke,kke,Ike,xke,Oke,Nke,Pke,Cke,Mke,Dke,Lke,Uke,Fke,jke,Hke,qke,Bke,Gke,zke,Vke,Wke]),Kke="all",Zke="each_quorum",Yke="quorum",Jke="local_quorum",Xke="one",Qke="two",$ke="three",eIe="local_one",tIe="any",nIe="serial",rIe="local_serial",P1t=Kke,C1t=Zke,M1t=Yke,D1t=Jke,L1t=Xke,U1t=Qke,F1t=$ke,j1t=eIe,H1t=tIe,q1t=nIe,B1t=rIe,G1t=ws([Kke,Zke,Yke,Jke,Xke,Qke,$ke,eIe,tIe,nIe,rIe]),iIe="datasource",sIe="http",oIe="pubsub",aIe="timer",cIe="other",z1t=iIe,V1t=sIe,W1t=oIe,K1t=aIe,Z1t=cIe,Y1t=ws([iIe,sIe,oIe,aIe,cIe]),uIe="insert",lIe="edit",dIe="delete",J1t=uIe,X1t=lIe,Q1t=dIe,$1t=ws([uIe,lIe,dIe]),fIe="alibaba_cloud",pIe="aws",hIe="azure",mIe="gcp",eUt=fIe,tUt=pIe,nUt=hIe,rUt=mIe,iUt=ws([fIe,pIe,hIe,mIe]),gIe="ip_tcp",yIe="ip_udp",SIe="ip",EIe="unix",bIe="pipe",_Ie="inproc",TIe="other",sUt=gIe,oUt=yIe,aUt=SIe,cUt=EIe,uUt=bIe,lUt=_Ie,dUt=TIe,fUt=ws([gIe,yIe,SIe,EIe,bIe,_Ie,TIe]),vIe="wifi",AIe="wired",RIe="cell",wIe="unavailable",kIe="unknown",pUt=vIe,hUt=AIe,mUt=RIe,gUt=wIe,yUt=kIe,SUt=ws([vIe,AIe,RIe,wIe,kIe]),IIe="gprs",xIe="edge",OIe="umts",NIe="cdma",PIe="evdo_0",CIe="evdo_a",MIe="cdma2000_1xrtt",DIe="hsdpa",LIe="hsupa",UIe="hspa",FIe="iden",jIe="evdo_b",HIe="lte",qIe="ehrpd",BIe="hspap",GIe="gsm",zIe="td_scdma",VIe="iwlan",WIe="nr",KIe="nrnsa",ZIe="lte_ca",EUt=IIe,bUt=xIe,_Ut=OIe,TUt=NIe,vUt=PIe,AUt=CIe,RUt=MIe,wUt=DIe,kUt=LIe,IUt=UIe,xUt=FIe,OUt=jIe,NUt=HIe,PUt=qIe,CUt=BIe,MUt=GIe,DUt=zIe,LUt=VIe,UUt=WIe,FUt=KIe,jUt=ZIe,HUt=ws([IIe,xIe,OIe,NIe,PIe,CIe,MIe,DIe,LIe,UIe,FIe,jIe,HIe,qIe,BIe,GIe,zIe,VIe,WIe,KIe,ZIe]),YIe="1.0",JIe="1.1",XIe="2.0",QIe="SPDY",$Ie="QUIC",qUt=YIe,BUt=JIe,GUt=XIe,zUt=QIe,VUt=$Ie,WUt={HTTP_1_0:YIe,HTTP_1_1:JIe,HTTP_2_0:XIe,SPDY:QIe,QUIC:$Ie},e0e="queue",t0e="topic",KUt=e0e,ZUt=t0e,YUt=ws([e0e,t0e]),n0e="receive",r0e="process",JUt=n0e,XUt=r0e,QUt=ws([n0e,r0e]),i0e=0,s0e=1,o0e=2,a0e=3,c0e=4,u0e=5,l0e=6,d0e=7,f0e=8,p0e=9,h0e=10,m0e=11,g0e=12,y0e=13,S0e=14,E0e=15,b0e=16,$Ut=i0e,eFt=s0e,tFt=o0e,nFt=a0e,rFt=c0e,iFt=u0e,sFt=l0e,oFt=d0e,aFt=f0e,cFt=p0e,uFt=h0e,lFt=m0e,dFt=g0e,fFt=y0e,pFt=S0e,hFt=E0e,mFt=b0e,gFt={OK:i0e,CANCELLED:s0e,UNKNOWN:o0e,INVALID_ARGUMENT:a0e,DEADLINE_EXCEEDED:c0e,NOT_FOUND:u0e,ALREADY_EXISTS:l0e,PERMISSION_DENIED:d0e,RESOURCE_EXHAUSTED:f0e,FAILED_PRECONDITION:p0e,ABORTED:h0e,OUT_OF_RANGE:m0e,UNIMPLEMENTED:g0e,INTERNAL:y0e,UNAVAILABLE:S0e,DATA_LOSS:E0e,UNAUTHENTICATED:b0e},_0e="SENT",T0e="RECEIVED",yFt=_0e,SFt=T0e,EFt=ws([_0e,T0e])});var A0e=v(()=>{v0e()});var R0e,w0e,k0e,I0e,x0e,O0e,N0e,P0e,C0e,M0e,D0e,L0e,U0e,F0e,j0e,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,Exe,bxe,_xe,Txe,vxe,Axe,Rxe,wxe,kxe,Ixe,xxe,Oxe,Nxe,Pxe,Cxe,Mxe,Dxe,Lxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,Gxe,zxe,Vxe,Wxe,Kxe,Zxe,Yxe,Jxe,Xxe,bFt,_Ft,TFt,vFt,AFt,RFt,wFt,kFt,IFt,xFt,OFt,NFt,PFt,CFt,MFt,DFt,LFt,UFt,FFt,jFt,HFt,qFt,BFt,GFt,zFt,VFt,WFt,KFt,ZFt,YFt,JFt,XFt,QFt,$Ft,ejt,tjt,njt,rjt,ijt,sjt,ojt,ajt,cjt,ujt,ljt,djt,fjt,pjt,hjt,mjt,gjt,yjt,Sjt,Ejt,bjt,_jt,Tjt,vjt,Ajt,Rjt,wjt,kjt,Ijt,xjt,Ojt,Njt,Pjt,Cjt,Mjt,Djt,Ljt,tJ,Ujt,Fjt,jjt,Hjt,qjt,Bjt,Gjt,zjt,Vjt,Wjt,Qxe,$xe,eOe,tOe,Kjt,Zjt,Yjt,Jjt,Xjt,nOe,rOe,iOe,sOe,oOe,aOe,cOe,uOe,lOe,dOe,fOe,pOe,hOe,mOe,gOe,yOe,SOe,Qjt,$jt,eHt,tHt,nHt,rHt,iHt,sHt,oHt,aHt,cHt,uHt,lHt,dHt,fHt,pHt,hHt,mHt,EOe,bOe,gHt,yHt,SHt,_Oe,TOe,vOe,AOe,ROe,wOe,kOe,EHt,bHt,_Ht,THt,vHt,AHt,RHt,wHt,IOe,xOe,OOe,NOe,POe,COe,MOe,DOe,LOe,UOe,FOe,kHt,IHt,xHt,OHt,NHt,PHt,CHt,MHt,DHt,LHt,UHt,FHt,jOe,HOe,qOe,BOe,GOe,zOe,VOe,WOe,KOe,ZOe,jHt,HHt,qHt,BHt,GHt,zHt,VHt,WHt,KHt,ZHt,YHt,YOe=v(()=>{q8();R0e="cloud.provider",w0e="cloud.account.id",k0e="cloud.region",I0e="cloud.availability_zone",x0e="cloud.platform",O0e="aws.ecs.container.arn",N0e="aws.ecs.cluster.arn",P0e="aws.ecs.launchtype",C0e="aws.ecs.task.arn",M0e="aws.ecs.task.family",D0e="aws.ecs.task.revision",L0e="aws.eks.cluster.arn",U0e="aws.log.group.names",F0e="aws.log.group.arns",j0e="aws.log.stream.names",H0e="aws.log.stream.arns",q0e="container.name",B0e="container.id",G0e="container.runtime",z0e="container.image.name",V0e="container.image.tag",W0e="deployment.environment",K0e="device.id",Z0e="device.model.identifier",Y0e="device.model.name",J0e="faas.name",X0e="faas.id",Q0e="faas.version",$0e="faas.instance",exe="faas.max_memory",txe="host.id",nxe="host.name",rxe="host.type",ixe="host.arch",sxe="host.image.name",oxe="host.image.id",axe="host.image.version",cxe="k8s.cluster.name",uxe="k8s.node.name",lxe="k8s.node.uid",dxe="k8s.namespace.name",fxe="k8s.pod.uid",pxe="k8s.pod.name",hxe="k8s.container.name",mxe="k8s.replicaset.uid",gxe="k8s.replicaset.name",yxe="k8s.deployment.uid",Sxe="k8s.deployment.name",Exe="k8s.statefulset.uid",bxe="k8s.statefulset.name",_xe="k8s.daemonset.uid",Txe="k8s.daemonset.name",vxe="k8s.job.uid",Axe="k8s.job.name",Rxe="k8s.cronjob.uid",wxe="k8s.cronjob.name",kxe="os.type",Ixe="os.description",xxe="os.name",Oxe="os.version",Nxe="process.pid",Pxe="process.executable.name",Cxe="process.executable.path",Mxe="process.command",Dxe="process.command_line",Lxe="process.command_args",Uxe="process.owner",Fxe="process.runtime.name",jxe="process.runtime.version",Hxe="process.runtime.description",qxe="service.name",Bxe="service.namespace",Gxe="service.instance.id",zxe="service.version",Vxe="telemetry.sdk.name",Wxe="telemetry.sdk.language",Kxe="telemetry.sdk.version",Zxe="telemetry.auto.version",Yxe="webengine.name",Jxe="webengine.version",Xxe="webengine.description",bFt=R0e,_Ft=w0e,TFt=k0e,vFt=I0e,AFt=x0e,RFt=O0e,wFt=N0e,kFt=P0e,IFt=C0e,xFt=M0e,OFt=D0e,NFt=L0e,PFt=U0e,CFt=F0e,MFt=j0e,DFt=H0e,LFt=q0e,UFt=B0e,FFt=G0e,jFt=z0e,HFt=V0e,qFt=W0e,BFt=K0e,GFt=Z0e,zFt=Y0e,VFt=J0e,WFt=X0e,KFt=Q0e,ZFt=$0e,YFt=exe,JFt=txe,XFt=nxe,QFt=rxe,$Ft=ixe,ejt=sxe,tjt=oxe,njt=axe,rjt=cxe,ijt=uxe,sjt=lxe,ojt=dxe,ajt=fxe,cjt=pxe,ujt=hxe,ljt=mxe,djt=gxe,fjt=yxe,pjt=Sxe,hjt=Exe,mjt=bxe,gjt=_xe,yjt=Txe,Sjt=vxe,Ejt=Axe,bjt=Rxe,_jt=wxe,Tjt=kxe,vjt=Ixe,Ajt=xxe,Rjt=Oxe,wjt=Nxe,kjt=Pxe,Ijt=Cxe,xjt=Mxe,Ojt=Dxe,Njt=Lxe,Pjt=Uxe,Cjt=Fxe,Mjt=jxe,Djt=Hxe,Ljt=qxe,tJ=Bxe,Ujt=Gxe,Fjt=zxe,jjt=Vxe,Hjt=Wxe,qjt=Kxe,Bjt=Zxe,Gjt=Yxe,zjt=Jxe,Vjt=Xxe,Wjt=ws([R0e,w0e,k0e,I0e,x0e,O0e,N0e,P0e,C0e,M0e,D0e,L0e,U0e,F0e,j0e,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,Exe,bxe,_xe,Txe,vxe,Axe,Rxe,wxe,kxe,Ixe,xxe,Oxe,Nxe,Pxe,Cxe,Mxe,Dxe,Lxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,Gxe,zxe,Vxe,Wxe,Kxe,Zxe,Yxe,Jxe,Xxe]),Qxe="alibaba_cloud",$xe="aws",eOe="azure",tOe="gcp",Kjt=Qxe,Zjt=$xe,Yjt=eOe,Jjt=tOe,Xjt=ws([Qxe,$xe,eOe,tOe]),nOe="alibaba_cloud_ecs",rOe="alibaba_cloud_fc",iOe="aws_ec2",sOe="aws_ecs",oOe="aws_eks",aOe="aws_lambda",cOe="aws_elastic_beanstalk",uOe="azure_vm",lOe="azure_container_instances",dOe="azure_aks",fOe="azure_functions",pOe="azure_app_service",hOe="gcp_compute_engine",mOe="gcp_cloud_run",gOe="gcp_kubernetes_engine",yOe="gcp_cloud_functions",SOe="gcp_app_engine",Qjt=nOe,$jt=rOe,eHt=iOe,tHt=sOe,nHt=oOe,rHt=aOe,iHt=cOe,sHt=uOe,oHt=lOe,aHt=dOe,cHt=fOe,uHt=pOe,lHt=hOe,dHt=mOe,fHt=gOe,pHt=yOe,hHt=SOe,mHt=ws([nOe,rOe,iOe,sOe,oOe,aOe,cOe,uOe,lOe,dOe,fOe,pOe,hOe,mOe,gOe,yOe,SOe]),EOe="ec2",bOe="fargate",gHt=EOe,yHt=bOe,SHt=ws([EOe,bOe]),_Oe="amd64",TOe="arm32",vOe="arm64",AOe="ia64",ROe="ppc32",wOe="ppc64",kOe="x86",EHt=_Oe,bHt=TOe,_Ht=vOe,THt=AOe,vHt=ROe,AHt=wOe,RHt=kOe,wHt=ws([_Oe,TOe,vOe,AOe,ROe,wOe,kOe]),IOe="windows",xOe="linux",OOe="darwin",NOe="freebsd",POe="netbsd",COe="openbsd",MOe="dragonflybsd",DOe="hpux",LOe="aix",UOe="solaris",FOe="z_os",kHt=IOe,IHt=xOe,xHt=OOe,OHt=NOe,NHt=POe,PHt=COe,CHt=MOe,MHt=DOe,DHt=LOe,LHt=UOe,UHt=FOe,FHt=ws([IOe,xOe,OOe,NOe,POe,COe,MOe,DOe,LOe,UOe,FOe]),jOe="cpp",HOe="dotnet",qOe="erlang",BOe="go",GOe="java",zOe="nodejs",VOe="php",WOe="python",KOe="ruby",ZOe="webjs",jHt=jOe,HHt=HOe,qHt=qOe,BHt=BOe,GHt=GOe,zHt=zOe,VHt=VOe,WHt=WOe,KHt=KOe,ZHt=ZOe,YHt=ws([jOe,HOe,qOe,BOe,GOe,zOe,VOe,WOe,KOe,ZOe])});var JOe=v(()=>{YOe()});var JHt,XHt,QHt,$Ht,eqt,tqt,nqt,rqt,iqt,sqt,oqt,aqt,cqt,uqt,lqt,dqt,fqt,pqt,hqt,mqt,gqt,yqt,Sqt,Eqt,bqt,nJ,rJ,_qt,lA,Tqt,iJ,sJ,vqt,mb,Aqt,Rqt,wqt,kqt,Iqt,xqt,Oqt,Nqt,Jgr,Xgr,oJ,Pqt,Cqt,Mqt,Dqt,Lqt,Uqt,gb,Fqt,jqt,Hqt,Qgr,qqt,Bqt,Gqt,zqt,$gr,Vqt,Wqt,Kqt,Zqt,cm,um,Yqt,Jqt,Xqt,Qqt,$qt,eBt,tBt,nBt,rBt,eyr,iBt,sBt,oBt,aBt,cBt,uBt,aJ,cJ,lBt,uJ,lJ,dBt,fBt,tyr,nyr,pBt,hBt,mBt,gBt,yBt,SBt,EBt,bBt,ryr,_Bt,dJ,fJ,TBt,pJ,vBt,hJ,ABt,RBt,wBt,kBt,IBt,xBt,OBt,NBt,PBt,iyr,CBt,MBt,syr,DBt,LBt,oyr,UBt,FBt,jBt,HBt,qBt,BBt,GBt,zBt,ly,VBt,WBt,KBt,mJ,XOe=v(()=>{JHt="aspnetcore.diagnostics.exception.result",XHt="aborted",QHt="handled",$Ht="skipped",eqt="unhandled",tqt="aspnetcore.diagnostics.handler.type",nqt="aspnetcore.rate_limiting.policy",rqt="aspnetcore.rate_limiting.result",iqt="acquired",sqt="endpoint_limiter",oqt="global_limiter",aqt="request_canceled",cqt="aspnetcore.request.is_unhandled",uqt="aspnetcore.routing.is_fallback",lqt="aspnetcore.routing.match_status",dqt="failure",fqt="success",pqt="aspnetcore.user.is_authenticated",hqt="client.address",mqt="client.port",gqt="code.column.number",yqt="code.file.path",Sqt="code.function.name",Eqt="code.line.number",bqt="code.stacktrace",nJ="db.collection.name",rJ="db.namespace",_qt="db.operation.batch.size",lA="db.operation.name",Tqt="db.query.summary",iJ="db.query.text",sJ="db.response.status_code",vqt="db.stored_procedure.name",mb="db.system.name",Aqt="mariadb",Rqt="microsoft.sql_server",wqt="mysql",kqt="postgresql",Iqt="dotnet.gc.heap.generation",xqt="gen0",Oqt="gen1",Nqt="gen2",Jgr="loh",Xgr="poh",oJ="error.type",Pqt="_OTHER",Cqt="exception.escaped",Mqt="exception.message",Dqt="exception.stacktrace",Lqt="exception.type",Uqt=e=>`http.request.header.${e}`,gb="http.request.method",Fqt="_OTHER",jqt="CONNECT",Hqt="DELETE",Qgr="GET",qqt="HEAD",Bqt="OPTIONS",Gqt="PATCH",zqt="POST",$gr="PUT",Vqt="TRACE",Wqt="http.request.method_original",Kqt="http.request.resend_count",Zqt=e=>`http.response.header.${e}`,cm="http.response.status_code",um="http.route",Yqt="jvm.gc.action",Jqt="jvm.gc.name",Xqt="jvm.memory.pool.name",Qqt="jvm.memory.type",$qt="heap",eBt="non_heap",tBt="jvm.thread.daemon",nBt="jvm.thread.state",rBt="blocked",eyr="new",iBt="runnable",sBt="terminated",oBt="timed_waiting",aBt="waiting",cBt="network.local.address",uBt="network.local.port",aJ="network.peer.address",cJ="network.peer.port",lBt="network.protocol.name",uJ="network.protocol.version",lJ="network.transport",dBt="pipe",fBt="quic",tyr="tcp",nyr="udp",pBt="unix",hBt="network.type",mBt="ipv4",gBt="ipv6",yBt="otel.scope.name",SBt="otel.scope.version",EBt="otel.status_code",bBt="ERROR",ryr="OK",_Bt="otel.status_description",dJ="server.address",fJ="server.port",TBt="service.instance.id",pJ="service.name",vBt="service.namespace",hJ="service.version",ABt="signalr.connection.status",RBt="app_shutdown",wBt="normal_closure",kBt="timeout",IBt="signalr.transport",xBt="long_polling",OBt="server_sent_events",NBt="web_sockets",PBt="telemetry.sdk.language",iyr="cpp",CBt="dotnet",MBt="erlang",syr="go",DBt="java",LBt="nodejs",oyr="php",UBt="python",FBt="ruby",jBt="rust",HBt="swift",qBt="webjs",BBt="telemetry.sdk.name",GBt="telemetry.sdk.version",zBt="url.fragment",ly="url.full",VBt="url.path",WBt="url.query",KBt="url.scheme",mJ="user_agent.original"});var ZBt,YBt,JBt,XBt,QBt,$Bt,eGt,tGt,nGt,rGt,iGt,sGt,oGt,aGt,cGt,uGt,lGt,dGt,fGt,pGt,hGt,mGt,gGt,yGt,SGt,EGt,bGt,_Gt,TGt,vGt,AGt,RGt,wGt,kGt,IGt,xGt,OGt,NGt,PGt,CGt,MGt,DGt,LGt,UGt,FGt,jGt,HGt,qGt,BGt,GGt,zGt,QOe=v(()=>{ZBt="aspnetcore.diagnostics.exceptions",YBt="aspnetcore.rate_limiting.active_request_leases",JBt="aspnetcore.rate_limiting.queued_requests",XBt="aspnetcore.rate_limiting.request.time_in_queue",QBt="aspnetcore.rate_limiting.request_lease.duration",$Bt="aspnetcore.rate_limiting.requests",eGt="aspnetcore.routing.match_attempts",tGt="db.client.operation.duration",nGt="dotnet.assembly.count",rGt="dotnet.exceptions",iGt="dotnet.gc.collections",sGt="dotnet.gc.heap.total_allocated",oGt="dotnet.gc.last_collection.heap.fragmentation.size",aGt="dotnet.gc.last_collection.heap.size",cGt="dotnet.gc.last_collection.memory.committed_size",uGt="dotnet.gc.pause.time",lGt="dotnet.jit.compilation.time",dGt="dotnet.jit.compiled_il.size",fGt="dotnet.jit.compiled_methods",pGt="dotnet.monitor.lock_contentions",hGt="dotnet.process.cpu.count",mGt="dotnet.process.cpu.time",gGt="dotnet.process.memory.working_set",yGt="dotnet.thread_pool.queue.length",SGt="dotnet.thread_pool.thread.count",EGt="dotnet.thread_pool.work_item.count",bGt="dotnet.timer.count",_Gt="http.client.request.duration",TGt="http.server.request.duration",vGt="jvm.class.count",AGt="jvm.class.loaded",RGt="jvm.class.unloaded",wGt="jvm.cpu.count",kGt="jvm.cpu.recent_utilization",IGt="jvm.cpu.time",xGt="jvm.gc.duration",OGt="jvm.memory.committed",NGt="jvm.memory.limit",PGt="jvm.memory.used",CGt="jvm.memory.used_after_last_gc",MGt="jvm.thread.count",DGt="kestrel.active_connections",LGt="kestrel.active_tls_handshakes",UGt="kestrel.connection.duration",FGt="kestrel.queued_connections",jGt="kestrel.queued_requests",HGt="kestrel.rejected_connections",qGt="kestrel.tls_handshake.duration",BGt="kestrel.upgraded_connections",GGt="signalr.server.active_connections",zGt="signalr.server.connection.duration"});var VGt,$Oe=v(()=>{VGt="exception"});var Mr={};Rr(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>XHt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>QHt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>$Ht,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>eqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>iqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>sqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>oqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>aqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>dqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>fqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>JHt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>tqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>nqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>rqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>cqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>uqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>lqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>pqt,ATTR_CLIENT_ADDRESS:()=>hqt,ATTR_CLIENT_PORT:()=>mqt,ATTR_CODE_COLUMN_NUMBER:()=>gqt,ATTR_CODE_FILE_PATH:()=>yqt,ATTR_CODE_FUNCTION_NAME:()=>Sqt,ATTR_CODE_LINE_NUMBER:()=>Eqt,ATTR_CODE_STACKTRACE:()=>bqt,ATTR_DB_COLLECTION_NAME:()=>nJ,ATTR_DB_NAMESPACE:()=>rJ,ATTR_DB_OPERATION_BATCH_SIZE:()=>_qt,ATTR_DB_OPERATION_NAME:()=>lA,ATTR_DB_QUERY_SUMMARY:()=>Tqt,ATTR_DB_QUERY_TEXT:()=>iJ,ATTR_DB_RESPONSE_STATUS_CODE:()=>sJ,ATTR_DB_STORED_PROCEDURE_NAME:()=>vqt,ATTR_DB_SYSTEM_NAME:()=>mb,ATTR_DOTNET_GC_HEAP_GENERATION:()=>Iqt,ATTR_ERROR_TYPE:()=>oJ,ATTR_EXCEPTION_ESCAPED:()=>Cqt,ATTR_EXCEPTION_MESSAGE:()=>Mqt,ATTR_EXCEPTION_STACKTRACE:()=>Dqt,ATTR_EXCEPTION_TYPE:()=>Lqt,ATTR_HTTP_REQUEST_HEADER:()=>Uqt,ATTR_HTTP_REQUEST_METHOD:()=>gb,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>Wqt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>Kqt,ATTR_HTTP_RESPONSE_HEADER:()=>Zqt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>cm,ATTR_HTTP_ROUTE:()=>um,ATTR_JVM_GC_ACTION:()=>Yqt,ATTR_JVM_GC_NAME:()=>Jqt,ATTR_JVM_MEMORY_POOL_NAME:()=>Xqt,ATTR_JVM_MEMORY_TYPE:()=>Qqt,ATTR_JVM_THREAD_DAEMON:()=>tBt,ATTR_JVM_THREAD_STATE:()=>nBt,ATTR_NETWORK_LOCAL_ADDRESS:()=>cBt,ATTR_NETWORK_LOCAL_PORT:()=>uBt,ATTR_NETWORK_PEER_ADDRESS:()=>aJ,ATTR_NETWORK_PEER_PORT:()=>cJ,ATTR_NETWORK_PROTOCOL_NAME:()=>lBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>uJ,ATTR_NETWORK_TRANSPORT:()=>lJ,ATTR_NETWORK_TYPE:()=>hBt,ATTR_OTEL_SCOPE_NAME:()=>yBt,ATTR_OTEL_SCOPE_VERSION:()=>SBt,ATTR_OTEL_STATUS_CODE:()=>EBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>_Bt,ATTR_SERVER_ADDRESS:()=>dJ,ATTR_SERVER_PORT:()=>fJ,ATTR_SERVICE_INSTANCE_ID:()=>TBt,ATTR_SERVICE_NAME:()=>pJ,ATTR_SERVICE_NAMESPACE:()=>vBt,ATTR_SERVICE_VERSION:()=>hJ,ATTR_SIGNALR_CONNECTION_STATUS:()=>ABt,ATTR_SIGNALR_TRANSPORT:()=>IBt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>PBt,ATTR_TELEMETRY_SDK_NAME:()=>BBt,ATTR_TELEMETRY_SDK_VERSION:()=>GBt,ATTR_URL_FRAGMENT:()=>zBt,ATTR_URL_FULL:()=>ly,ATTR_URL_PATH:()=>VBt,ATTR_URL_QUERY:()=>WBt,ATTR_URL_SCHEME:()=>KBt,ATTR_USER_AGENT_ORIGINAL:()=>mJ,AWSECSLAUNCHTYPEVALUES_EC2:()=>gHt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>yHt,AwsEcsLaunchtypeValues:()=>SHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>Qjt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>$jt,CLOUDPLATFORMVALUES_AWS_EC2:()=>eHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>tHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>nHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>iHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>rHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>aHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>uHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>oHt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>cHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>sHt,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>hHt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>pHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>dHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>lHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>fHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>Kjt,CLOUDPROVIDERVALUES_AWS:()=>Zjt,CLOUDPROVIDERVALUES_AZURE:()=>Yjt,CLOUDPROVIDERVALUES_GCP:()=>Jjt,CloudPlatformValues:()=>mHt,CloudProviderValues:()=>Xjt,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>P1t,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>H1t,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>C1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>j1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>D1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>B1t,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>L1t,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>M1t,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>q1t,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>F1t,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>U1t,DBSYSTEMVALUES_ADABAS:()=>t1t,DBSYSTEMVALUES_CACHE:()=>e1t,DBSYSTEMVALUES_CASSANDRA:()=>S1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>WLt,DBSYSTEMVALUES_COCKROACHDB:()=>O1t,DBSYSTEMVALUES_COLDFUSION:()=>y1t,DBSYSTEMVALUES_COSMOSDB:()=>A1t,DBSYSTEMVALUES_COUCHBASE:()=>T1t,DBSYSTEMVALUES_COUCHDB:()=>v1t,DBSYSTEMVALUES_DB2:()=>BLt,DBSYSTEMVALUES_DERBY:()=>r1t,DBSYSTEMVALUES_DYNAMODB:()=>R1t,DBSYSTEMVALUES_EDB:()=>$Lt,DBSYSTEMVALUES_ELASTICSEARCH:()=>I1t,DBSYSTEMVALUES_FILEMAKER:()=>i1t,DBSYSTEMVALUES_FIREBIRD:()=>n1t,DBSYSTEMVALUES_FIRSTSQL:()=>QLt,DBSYSTEMVALUES_GEODE:()=>k1t,DBSYSTEMVALUES_H2:()=>g1t,DBSYSTEMVALUES_HANADB:()=>JLt,DBSYSTEMVALUES_HBASE:()=>E1t,DBSYSTEMVALUES_HIVE:()=>VLt,DBSYSTEMVALUES_HSQLDB:()=>KLt,DBSYSTEMVALUES_INFORMIX:()=>s1t,DBSYSTEMVALUES_INGRES:()=>XLt,DBSYSTEMVALUES_INSTANTDB:()=>o1t,DBSYSTEMVALUES_INTERBASE:()=>a1t,DBSYSTEMVALUES_MARIADB:()=>c1t,DBSYSTEMVALUES_MAXDB:()=>YLt,DBSYSTEMVALUES_MEMCACHED:()=>x1t,DBSYSTEMVALUES_MONGODB:()=>b1t,DBSYSTEMVALUES_MSSQL:()=>jLt,DBSYSTEMVALUES_MYSQL:()=>HLt,DBSYSTEMVALUES_NEO4J:()=>w1t,DBSYSTEMVALUES_NETEZZA:()=>u1t,DBSYSTEMVALUES_ORACLE:()=>qLt,DBSYSTEMVALUES_OTHER_SQL:()=>FLt,DBSYSTEMVALUES_PERVASIVE:()=>l1t,DBSYSTEMVALUES_POINTBASE:()=>d1t,DBSYSTEMVALUES_POSTGRESQL:()=>GLt,DBSYSTEMVALUES_PROGRESS:()=>ZLt,DBSYSTEMVALUES_REDIS:()=>_1t,DBSYSTEMVALUES_REDSHIFT:()=>zLt,DBSYSTEMVALUES_SQLITE:()=>f1t,DBSYSTEMVALUES_SYBASE:()=>p1t,DBSYSTEMVALUES_TERADATA:()=>h1t,DBSYSTEMVALUES_VERTICA:()=>m1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Aqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>Rqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>wqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>kqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>xqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>Oqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>Nqt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>Jgr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>Xgr,DbCassandraConsistencyLevelValues:()=>G1t,DbSystemValues:()=>N1t,ERROR_TYPE_VALUE_OTHER:()=>Pqt,EVENT_EXCEPTION:()=>VGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>Q1t,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>X1t,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>J1t,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>eUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>tUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>nUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>rUt,FAASTRIGGERVALUES_DATASOURCE:()=>z1t,FAASTRIGGERVALUES_HTTP:()=>V1t,FAASTRIGGERVALUES_OTHER:()=>Z1t,FAASTRIGGERVALUES_PUBSUB:()=>W1t,FAASTRIGGERVALUES_TIMER:()=>K1t,FaasDocumentOperationValues:()=>$1t,FaasInvokedProviderValues:()=>iUt,FaasTriggerValues:()=>Y1t,HOSTARCHVALUES_AMD64:()=>EHt,HOSTARCHVALUES_ARM32:()=>bHt,HOSTARCHVALUES_ARM64:()=>_Ht,HOSTARCHVALUES_IA64:()=>THt,HOSTARCHVALUES_PPC32:()=>vHt,HOSTARCHVALUES_PPC64:()=>AHt,HOSTARCHVALUES_X86:()=>RHt,HTTPFLAVORVALUES_HTTP_1_0:()=>qUt,HTTPFLAVORVALUES_HTTP_1_1:()=>BUt,HTTPFLAVORVALUES_HTTP_2_0:()=>GUt,HTTPFLAVORVALUES_QUIC:()=>VUt,HTTPFLAVORVALUES_SPDY:()=>zUt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>jqt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>Hqt,HTTP_REQUEST_METHOD_VALUE_GET:()=>Qgr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>qqt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>Bqt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>Fqt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>Gqt,HTTP_REQUEST_METHOD_VALUE_POST:()=>zqt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>$gr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>Vqt,HostArchValues:()=>wHt,HttpFlavorValues:()=>WUt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>$qt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>eBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>rBt,JVM_THREAD_STATE_VALUE_NEW:()=>eyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>iBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>sBt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>oBt,JVM_THREAD_STATE_VALUE_WAITING:()=>aBt,MESSAGETYPEVALUES_RECEIVED:()=>SFt,MESSAGETYPEVALUES_SENT:()=>yFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>KUt,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>ZUt,MESSAGINGOPERATIONVALUES_PROCESS:()=>XUt,MESSAGINGOPERATIONVALUES_RECEIVE:()=>JUt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>ZBt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>YBt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>JBt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>$Bt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>QBt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>XBt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>eGt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>tGt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>nGt,METRIC_DOTNET_EXCEPTIONS:()=>rGt,METRIC_DOTNET_GC_COLLECTIONS:()=>iGt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>sGt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>oGt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>aGt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>cGt,METRIC_DOTNET_GC_PAUSE_TIME:()=>uGt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>lGt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>dGt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>fGt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>pGt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>hGt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>mGt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>gGt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>yGt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>SGt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>EGt,METRIC_DOTNET_TIMER_COUNT:()=>bGt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>_Gt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>TGt,METRIC_JVM_CLASS_COUNT:()=>vGt,METRIC_JVM_CLASS_LOADED:()=>AGt,METRIC_JVM_CLASS_UNLOADED:()=>RGt,METRIC_JVM_CPU_COUNT:()=>wGt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>kGt,METRIC_JVM_CPU_TIME:()=>IGt,METRIC_JVM_GC_DURATION:()=>xGt,METRIC_JVM_MEMORY_COMMITTED:()=>OGt,METRIC_JVM_MEMORY_LIMIT:()=>NGt,METRIC_JVM_MEMORY_USED:()=>PGt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>CGt,METRIC_JVM_THREAD_COUNT:()=>MGt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>DGt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>LGt,METRIC_KESTREL_CONNECTION_DURATION:()=>UGt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>FGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>jGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>HGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>qGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>BGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>GGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>zGt,MessageTypeValues:()=>EFt,MessagingDestinationKindValues:()=>YUt,MessagingOperationValues:()=>QUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>TUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>RUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>bUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>PUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>vUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>AUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>OUt,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>EUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>MUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>wUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>IUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>CUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>kUt,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>xUt,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>LUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>NUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>jUt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>UUt,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>FUt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>DUt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>_Ut,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>mUt,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>gUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>yUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>pUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>hUt,NETTRANSPORTVALUES_INPROC:()=>lUt,NETTRANSPORTVALUES_IP:()=>aUt,NETTRANSPORTVALUES_IP_TCP:()=>sUt,NETTRANSPORTVALUES_IP_UDP:()=>oUt,NETTRANSPORTVALUES_OTHER:()=>dUt,NETTRANSPORTVALUES_PIPE:()=>uUt,NETTRANSPORTVALUES_UNIX:()=>cUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>dBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>fBt,NETWORK_TRANSPORT_VALUE_TCP:()=>tyr,NETWORK_TRANSPORT_VALUE_UDP:()=>nyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>pBt,NETWORK_TYPE_VALUE_IPV4:()=>mBt,NETWORK_TYPE_VALUE_IPV6:()=>gBt,NetHostConnectionSubtypeValues:()=>HUt,NetHostConnectionTypeValues:()=>SUt,NetTransportValues:()=>fUt,OSTYPEVALUES_AIX:()=>DHt,OSTYPEVALUES_DARWIN:()=>xHt,OSTYPEVALUES_DRAGONFLYBSD:()=>CHt,OSTYPEVALUES_FREEBSD:()=>OHt,OSTYPEVALUES_HPUX:()=>MHt,OSTYPEVALUES_LINUX:()=>IHt,OSTYPEVALUES_NETBSD:()=>NHt,OSTYPEVALUES_OPENBSD:()=>PHt,OSTYPEVALUES_SOLARIS:()=>LHt,OSTYPEVALUES_WINDOWS:()=>kHt,OSTYPEVALUES_Z_OS:()=>UHt,OTEL_STATUS_CODE_VALUE_ERROR:()=>bBt,OTEL_STATUS_CODE_VALUE_OK:()=>ryr,OsTypeValues:()=>FHt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>uFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>sFt,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>eFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>hFt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>rFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>cFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>fFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>nFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>iFt,RPCGRPCSTATUSCODEVALUES_OK:()=>$Ut,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>lFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>oFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>aFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>mFt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>pFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>dFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>tFt,RpcGrpcStatusCodeValues:()=>gFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>YDt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>aLt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>WDt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>BDt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>sLt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>eLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>QDt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>cLt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>JDt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>GDt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>ZDt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>$Dt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>KDt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>zDt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>VDt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>oLt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>nLt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>rLt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>XDt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>tLt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>qDt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>iLt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>CMt,SEMATTRS_CODE_FILEPATH:()=>NDt,SEMATTRS_CODE_FUNCTION:()=>xDt,SEMATTRS_CODE_LINENO:()=>PDt,SEMATTRS_CODE_NAMESPACE:()=>ODt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>BMt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>KMt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>WMt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>zMt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>HMt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>qMt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>VMt,SEMATTRS_DB_CASSANDRA_TABLE:()=>GMt,SEMATTRS_DB_CONNECTION_STRING:()=>MMt,SEMATTRS_DB_HBASE_NAMESPACE:()=>ZMt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>LMt,SEMATTRS_DB_MONGODB_COLLECTION:()=>JMt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>jMt,SEMATTRS_DB_NAME:()=>UMt,SEMATTRS_DB_OPERATION:()=>FMt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>YMt,SEMATTRS_DB_SQL_TABLE:()=>XMt,SEMATTRS_DB_STATEMENT:()=>G8,SEMATTRS_DB_SYSTEM:()=>B8,SEMATTRS_DB_USER:()=>DMt,SEMATTRS_ENDUSER_ID:()=>ADt,SEMATTRS_ENDUSER_ROLE:()=>RDt,SEMATTRS_ENDUSER_SCOPE:()=>wDt,SEMATTRS_EXCEPTION_ESCAPED:()=>tDt,SEMATTRS_EXCEPTION_MESSAGE:()=>$Mt,SEMATTRS_EXCEPTION_STACKTRACE:()=>eDt,SEMATTRS_EXCEPTION_TYPE:()=>QMt,SEMATTRS_FAAS_COLDSTART:()=>uDt,SEMATTRS_FAAS_CRON:()=>cDt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>rDt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>oDt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>iDt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>sDt,SEMATTRS_FAAS_EXECUTION:()=>nDt,SEMATTRS_FAAS_INVOKED_NAME:()=>lDt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>dDt,SEMATTRS_FAAS_INVOKED_REGION:()=>fDt,SEMATTRS_FAAS_TIME:()=>aDt,SEMATTRS_FAAS_TRIGGER:()=>z8,SEMATTRS_HTTP_CLIENT_IP:()=>HDt,SEMATTRS_HTTP_FLAVOR:()=>DDt,SEMATTRS_HTTP_HOST:()=>CDt,SEMATTRS_HTTP_METHOD:()=>cO,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>UDt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>FDt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>Y8,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>J8,SEMATTRS_HTTP_ROUTE:()=>X8,SEMATTRS_HTTP_SCHEME:()=>MDt,SEMATTRS_HTTP_SERVER_NAME:()=>jDt,SEMATTRS_HTTP_STATUS_CODE:()=>hb,SEMATTRS_HTTP_TARGET:()=>Z8,SEMATTRS_HTTP_URL:()=>uA,SEMATTRS_HTTP_USER_AGENT:()=>LDt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>DLt,SEMATTRS_MESSAGE_ID:()=>MLt,SEMATTRS_MESSAGE_TYPE:()=>CLt,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>LLt,SEMATTRS_MESSAGING_CONSUMER_ID:()=>bLt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>gLt,SEMATTRS_MESSAGING_DESTINATION:()=>uLt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>lLt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>ALt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>vLt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>TLt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>RLt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>wLt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>mLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>SLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>yLt,SEMATTRS_MESSAGING_OPERATION:()=>ELt,SEMATTRS_MESSAGING_PROTOCOL:()=>fLt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>pLt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>_Lt,SEMATTRS_MESSAGING_SYSTEM:()=>Q8,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>dLt,SEMATTRS_MESSAGING_URL:()=>hLt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>TDt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>bDt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>_Dt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>EDt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>SDt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>yDt,SEMATTRS_NET_HOST_IP:()=>W8,SEMATTRS_NET_HOST_NAME:()=>gDt,SEMATTRS_NET_HOST_PORT:()=>K8,SEMATTRS_NET_PEER_IP:()=>V8,SEMATTRS_NET_PEER_NAME:()=>mDt,SEMATTRS_NET_PEER_PORT:()=>hDt,SEMATTRS_NET_TRANSPORT:()=>pDt,SEMATTRS_PEER_SERVICE:()=>vDt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>eJ,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>NLt,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>PLt,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>OLt,SEMATTRS_RPC_JSONRPC_VERSION:()=>xLt,SEMATTRS_RPC_METHOD:()=>ILt,SEMATTRS_RPC_SERVICE:()=>$8,SEMATTRS_RPC_SYSTEM:()=>kLt,SEMATTRS_THREAD_ID:()=>kDt,SEMATTRS_THREAD_NAME:()=>IDt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>wFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>RFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>kFt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>IFt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>xFt,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>OFt,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>NFt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>CFt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>PFt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>DFt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>MFt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>_Ft,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>vFt,SEMRESATTRS_CLOUD_PLATFORM:()=>AFt,SEMRESATTRS_CLOUD_PROVIDER:()=>bFt,SEMRESATTRS_CLOUD_REGION:()=>TFt,SEMRESATTRS_CONTAINER_ID:()=>UFt,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>jFt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>HFt,SEMRESATTRS_CONTAINER_NAME:()=>LFt,SEMRESATTRS_CONTAINER_RUNTIME:()=>FFt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>qFt,SEMRESATTRS_DEVICE_ID:()=>BFt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>GFt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>zFt,SEMRESATTRS_FAAS_ID:()=>WFt,SEMRESATTRS_FAAS_INSTANCE:()=>ZFt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>YFt,SEMRESATTRS_FAAS_NAME:()=>VFt,SEMRESATTRS_FAAS_VERSION:()=>KFt,SEMRESATTRS_HOST_ARCH:()=>$Ft,SEMRESATTRS_HOST_ID:()=>JFt,SEMRESATTRS_HOST_IMAGE_ID:()=>tjt,SEMRESATTRS_HOST_IMAGE_NAME:()=>ejt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>njt,SEMRESATTRS_HOST_NAME:()=>XFt,SEMRESATTRS_HOST_TYPE:()=>QFt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>rjt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>ujt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>_jt,SEMRESATTRS_K8S_CRONJOB_UID:()=>bjt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>yjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>gjt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>pjt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>fjt,SEMRESATTRS_K8S_JOB_NAME:()=>Ejt,SEMRESATTRS_K8S_JOB_UID:()=>Sjt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>ojt,SEMRESATTRS_K8S_NODE_NAME:()=>ijt,SEMRESATTRS_K8S_NODE_UID:()=>sjt,SEMRESATTRS_K8S_POD_NAME:()=>cjt,SEMRESATTRS_K8S_POD_UID:()=>ajt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>djt,SEMRESATTRS_K8S_REPLICASET_UID:()=>ljt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>mjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>hjt,SEMRESATTRS_OS_DESCRIPTION:()=>vjt,SEMRESATTRS_OS_NAME:()=>Ajt,SEMRESATTRS_OS_TYPE:()=>Tjt,SEMRESATTRS_OS_VERSION:()=>Rjt,SEMRESATTRS_PROCESS_COMMAND:()=>xjt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>Njt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>Ojt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>kjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Ijt,SEMRESATTRS_PROCESS_OWNER:()=>Pjt,SEMRESATTRS_PROCESS_PID:()=>wjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>Djt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>Cjt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>Mjt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>Ujt,SEMRESATTRS_SERVICE_NAME:()=>Ljt,SEMRESATTRS_SERVICE_NAMESPACE:()=>tJ,SEMRESATTRS_SERVICE_VERSION:()=>Fjt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>Bjt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>Hjt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>jjt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>qjt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>Vjt,SEMRESATTRS_WEBENGINE_NAME:()=>Gjt,SEMRESATTRS_WEBENGINE_VERSION:()=>zjt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>RBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>wBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>kBt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>xBt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>OBt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>NBt,SemanticAttributes:()=>ULt,SemanticResourceAttributes:()=>Wjt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>jHt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>HHt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>qHt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>BHt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>GHt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>zHt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>VHt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>WHt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>KHt,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>ZHt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>iyr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>CBt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>MBt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>syr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>DBt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>LBt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>oyr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>UBt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>FBt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>jBt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>HBt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>qBt,TelemetrySdkLanguageValues:()=>YHt});var Nn=v(()=>{A0e();JOe();XOe();QOe();$Oe()});var eNe=w(bF=>{"use strict";Object.defineProperty(bF,"__esModule",{value:!0});bF.ATTR_PROCESS_RUNTIME_NAME=void 0;bF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var tNe=w(TF=>{"use strict";Object.defineProperty(TF,"__esModule",{value:!0});TF.SDK_INFO=void 0;var WGt=CAe(),_F=(Nn(),ke(Mr)),KGt=eNe();TF.SDK_INFO={[_F.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[KGt.ATTR_PROCESS_RUNTIME_NAME]:"node",[_F.ATTR_TELEMETRY_SDK_LANGUAGE]:_F.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[_F.ATTR_TELEMETRY_SDK_VERSION]:WGt.VERSION}});var nNe=w(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.otperformance=qa.SDK_INFO=qa._globalThis=qa.getStringListFromEnv=qa.getNumberFromEnv=qa.getBooleanFromEnv=qa.getStringFromEnv=void 0;var vF=NAe();Object.defineProperty(qa,"getStringFromEnv",{enumerable:!0,get:function(){return vF.getStringFromEnv}});Object.defineProperty(qa,"getBooleanFromEnv",{enumerable:!0,get:function(){return vF.getBooleanFromEnv}});Object.defineProperty(qa,"getNumberFromEnv",{enumerable:!0,get:function(){return vF.getNumberFromEnv}});Object.defineProperty(qa,"getStringListFromEnv",{enumerable:!0,get:function(){return vF.getStringListFromEnv}});var ZGt=PAe();Object.defineProperty(qa,"_globalThis",{enumerable:!0,get:function(){return ZGt._globalThis}});var YGt=tNe();Object.defineProperty(qa,"SDK_INFO",{enumerable:!0,get:function(){return YGt.SDK_INFO}});qa.otperformance=performance});var gJ=w(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.getStringListFromEnv=Ba.getNumberFromEnv=Ba.getStringFromEnv=Ba.getBooleanFromEnv=Ba.otperformance=Ba._globalThis=Ba.SDK_INFO=void 0;var yb=nNe();Object.defineProperty(Ba,"SDK_INFO",{enumerable:!0,get:function(){return yb.SDK_INFO}});Object.defineProperty(Ba,"_globalThis",{enumerable:!0,get:function(){return yb._globalThis}});Object.defineProperty(Ba,"otperformance",{enumerable:!0,get:function(){return yb.otperformance}});Object.defineProperty(Ba,"getBooleanFromEnv",{enumerable:!0,get:function(){return yb.getBooleanFromEnv}});Object.defineProperty(Ba,"getStringFromEnv",{enumerable:!0,get:function(){return yb.getStringFromEnv}});Object.defineProperty(Ba,"getNumberFromEnv",{enumerable:!0,get:function(){return yb.getNumberFromEnv}});Object.defineProperty(Ba,"getStringListFromEnv",{enumerable:!0,get:function(){return yb.getStringListFromEnv}})});var oNe=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 AF=gJ(),rNe=9,JGt=6,XGt=Math.pow(10,JGt),RF=Math.pow(10,rNe);function uO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*XGt);return[n,r]}ei.millisToHrTime=uO;function QGt(){return AF.otperformance.timeOrigin}ei.getTimeOrigin=QGt;function iNe(e){let t=uO(AF.otperformance.timeOrigin),n=uO(typeof e=="number"?e:AF.otperformance.now());return sNe(t,n)}ei.hrTime=iNe;function $Gt(e){if(yJ(e))return e;if(typeof e=="number")return e=RF&&(n[1]-=RF,n[0]+=1),n}ei.addHrTimes=sNe});var aNe=w(wF=>{"use strict";Object.defineProperty(wF,"__esModule",{value:!0});wF.unrefTimer=void 0;function ozt(e){typeof e!="number"&&e.unref()}wF.unrefTimer=ozt});var cNe=w(lO=>{"use strict";Object.defineProperty(lO,"__esModule",{value:!0});lO.ExportResultCode=void 0;var azt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(azt=lO.ExportResultCode||(lO.ExportResultCode={}))});var lNe=w(kF=>{"use strict";Object.defineProperty(kF,"__esModule",{value:!0});kF.CompositePropagator=void 0;var uNe=(Ce(),ke(Ye)),SJ=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){uNe.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){uNe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};kF.CompositePropagator=SJ});var dNe=w(dA=>{"use strict";Object.defineProperty(dA,"__esModule",{value:!0});dA.validateValue=dA.validateKey=void 0;var EJ="[_0-9a-z-*/]",czt=`[a-z]${EJ}{0,255}`,uzt=`[a-z0-9]${EJ}{0,240}@[a-z]${EJ}{0,13}`,lzt=new RegExp(`^(?:${czt}|${uzt})$`),dzt=/^[ -~]{0,255}[!-~]$/,fzt=/,|=/;function pzt(e){return lzt.test(e)}dA.validateKey=pzt;function hzt(e){return dzt.test(e)&&!fzt.test(e)}dA.validateValue=hzt});var _J=w(IF=>{"use strict";Object.defineProperty(IF,"__esModule",{value:!0});IF.TraceState=void 0;var fNe=dNe(),pNe=32,mzt=512,hNe=",",mNe="=",bJ=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+mNe+this.get(n)),t),[]).join(hNe)}_parse(t){t.length>mzt||(this._internalState=t.split(hNe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(mNe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,fNe.validateKey)(o)&&(0,fNe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>pNe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,pNe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};IF.TraceState=bJ});var yNe=w(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.W3CTraceContextPropagator=Ga.parseTraceParent=Ga.TRACE_STATE_HEADER=Ga.TRACE_PARENT_HEADER=void 0;var xF=(Ce(),ke(Ye)),gzt=aO(),yzt=_J();Ga.TRACE_PARENT_HEADER="traceparent";Ga.TRACE_STATE_HEADER="tracestate";var Szt="00",Ezt="(?!ff)[\\da-f]{2}",bzt="(?![0]{32})[\\da-f]{32}",_zt="(?![0]{16})[\\da-f]{16}",Tzt="[\\da-f]{2}",vzt=new RegExp(`^\\s?(${Ezt})-(${bzt})-(${_zt})-(${Tzt})(-.*)?\\s?$`);function gNe(e){let t=vzt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}Ga.parseTraceParent=gNe;var TJ=class{inject(t,n,r){let i=xF.trace.getSpanContext(t);if(!i||(0,gzt.isTracingSuppressed)(t)||!(0,xF.isSpanContextValid)(i))return;let s=`${Szt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||xF.TraceFlags.NONE).toString(16)}`;r.set(n,Ga.TRACE_PARENT_HEADER,s),i.traceState&&r.set(n,Ga.TRACE_STATE_HEADER,i.traceState.serialize())}extract(t,n,r){let i=r.get(n,Ga.TRACE_PARENT_HEADER);if(!i)return t;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return t;let o=gNe(s);if(!o)return t;o.isRemote=!0;let a=r.get(n,Ga.TRACE_STATE_HEADER);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new yzt.TraceState(typeof c=="string"?c:void 0)}return xF.trace.setSpanContext(t,o)}fields(){return[Ga.TRACE_PARENT_HEADER,Ga.TRACE_STATE_HEADER]}};Ga.W3CTraceContextPropagator=TJ});var SNe=w(Jd=>{"use strict";Object.defineProperty(Jd,"__esModule",{value:!0});Jd.getRPCMetadata=Jd.deleteRPCMetadata=Jd.setRPCMetadata=Jd.RPCType=void 0;var Azt=(Ce(),ke(Ye)),vJ=(0,Azt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),Rzt;(function(e){e.HTTP="http"})(Rzt=Jd.RPCType||(Jd.RPCType={}));function wzt(e,t){return e.setValue(vJ,t)}Jd.setRPCMetadata=wzt;function kzt(e){return e.deleteValue(vJ)}Jd.deleteRPCMetadata=kzt;function Izt(e){return e.getValue(vJ)}Jd.getRPCMetadata=Izt});var vNe=w(OF=>{"use strict";Object.defineProperty(OF,"__esModule",{value:!0});OF.isPlainObject=void 0;var xzt="[object Object]",Ozt="[object Null]",Nzt="[object Undefined]",Pzt=Function.prototype,ENe=Pzt.toString,Czt=ENe.call(Object),Mzt=Object.getPrototypeOf,bNe=Object.prototype,_Ne=bNe.hasOwnProperty,Sb=Symbol?Symbol.toStringTag:void 0,TNe=bNe.toString;function Dzt(e){if(!Lzt(e)||Uzt(e)!==xzt)return!1;let t=Mzt(e);if(t===null)return!0;let n=_Ne.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&ENe.call(n)===Czt}OF.isPlainObject=Dzt;function Lzt(e){return e!=null&&typeof e=="object"}function Uzt(e){return e==null?e===void 0?Nzt:Ozt:Sb&&Sb in Object(e)?Fzt(e):jzt(e)}function Fzt(e){let t=_Ne.call(e,Sb),n=e[Sb],r=!1;try{e[Sb]=void 0,r=!0}catch{}let i=TNe.call(e);return r&&(t?e[Sb]=n:delete e[Sb]),i}function jzt(e){return TNe.call(e)}});var INe=w(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.merge=void 0;var ANe=vNe(),Hzt=20;function qzt(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=wNe(t,e.shift(),0,n);return t}CF.merge=qzt;function AJ(e){return PF(e)?e.slice():e}function wNe(e,t,n=0,r){let i;if(!(n>Hzt)){if(n++,NF(e)||NF(t)||kNe(t))i=AJ(t);else if(PF(e)){if(i=e.slice(),PF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(RNe(e,c,r)||RNe(t,c,r))delete i[c];else{if(dO(l)&&dO(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]=wNe(i[c],u,n,r)}}}}else i=t;return i}}function RNe(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 Bzt(e,t){return!(!(0,ANe.isPlainObject)(e)||!(0,ANe.isPlainObject)(t))}});var xNe=w(fA=>{"use strict";Object.defineProperty(fA,"__esModule",{value:!0});fA.callWithTimeout=fA.TimeoutError=void 0;var MF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};fA.TimeoutError=MF;function Gzt(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new MF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}fA.callWithTimeout=Gzt});var NNe=w(pA=>{"use strict";Object.defineProperty(pA,"__esModule",{value:!0});pA.isUrlIgnored=pA.urlMatches=void 0;function ONe(e,t){return typeof t=="string"?e===t:!!e.match(t)}pA.urlMatches=ONe;function zzt(e,t){if(!t)return!1;for(let n of t)if(ONe(e,n))return!0;return!1}pA.isUrlIgnored=zzt});var PNe=w(DF=>{"use strict";Object.defineProperty(DF,"__esModule",{value:!0});DF.Deferred=void 0;var RJ=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)}};DF.Deferred=RJ});var CNe=w(LF=>{"use strict";Object.defineProperty(LF,"__esModule",{value:!0});LF.BindOnceFuture=void 0;var Vzt=PNe(),wJ=class{_isCalled=!1;_deferred=new Vzt.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}};LF.BindOnceFuture=wJ});var DNe=w(UF=>{"use strict";Object.defineProperty(UF,"__esModule",{value:!0});UF.diagLogLevelFromString=void 0;var lm=(Ce(),ke(Ye)),MNe={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 Wzt(e){if(e==null)return;let t=MNe[e.toUpperCase()];return t??(lm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(MNe)}, using default`),lm.DiagLogLevel.INFO)}UF.diagLogLevelFromString=Wzt});var UNe=w(FF=>{"use strict";Object.defineProperty(FF,"__esModule",{value:!0});FF._export=void 0;var LNe=(Ce(),ke(Ye)),Kzt=aO();function Zzt(e,t){return new Promise(n=>{LNe.context.with((0,Kzt.suppressTracing)(LNe.context.active()),()=>{e.export(t,n)})})}FF._export=Zzt});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 Yzt=EAe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return Yzt.W3CBaggagePropagator}});var Jzt=bAe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return Jzt.AnchoredClock}});var FNe=RAe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return FNe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return FNe.sanitizeAttributes}});var jNe=kAe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return jNe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return jNe.setGlobalErrorHandler}});var Xzt=H8();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return Xzt.loggingErrorHandler}});var Ul=oNe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return Ul.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return Ul.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return Ul.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return Ul.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return Ul.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return Ul.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return Ul.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return Ul.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return Ul.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return Ul.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return Ul.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return Ul.timeInputToHrTime}});var Qzt=aNe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return Qzt.unrefTimer}});var $zt=cNe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return $zt.ExportResultCode}});var eVt=D8();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return eVt.parseKeyPairsIntoRecord}});var Eb=gJ();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return Eb.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return Eb._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return Eb.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return Eb.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return Eb.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return Eb.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return Eb.otperformance}});var tVt=lNe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return tVt.CompositePropagator}});var jF=yNe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return jF.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return jF.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return jF.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return jF.parseTraceParent}});var HF=SNe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return HF.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return HF.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return HF.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return HF.setRPCMetadata}});var kJ=aO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return kJ.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return kJ.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return kJ.unsuppressTracing}});var nVt=_J();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return nVt.TraceState}});var rVt=INe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return rVt.merge}});var HNe=xNe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return HNe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return HNe.callWithTimeout}});var qNe=NNe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return qNe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return qNe.urlMatches}});var iVt=CNe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return iVt.BindOnceFuture}});var sVt=DNe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return sVt.diagLogLevelFromString}});var oVt=UNe();we.internal={_export:oVt._export}});var BNe=w(qF=>{"use strict";Object.defineProperty(qF,"__esModule",{value:!0});qF.VERSION=void 0;qF.VERSION="0.214.0"});var GNe=w(fO=>{"use strict";Object.defineProperty(fO,"__esModule",{value:!0});fO.SeverityNumber=void 0;var aVt;(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"})(aVt=fO.SeverityNumber||(fO.SeverityNumber={}))});var GF=w(hA=>{"use strict";Object.defineProperty(hA,"__esModule",{value:!0});hA.NOOP_LOGGER=hA.NoopLogger=void 0;var BF=class{emit(t){}};hA.NoopLogger=BF;hA.NOOP_LOGGER=new BF});var zNe=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 cVt(e,t,n){return r=>r===e?t:n}Op.makeGetter=cVt;Op.API_BACKWARDS_COMPATIBILITY_VERSION=1});var IJ=w(mA=>{"use strict";Object.defineProperty(mA,"__esModule",{value:!0});mA.NOOP_LOGGER_PROVIDER=mA.NoopLoggerProvider=void 0;var uVt=GF(),zF=class{getLogger(t,n,r){return new uVt.NoopLogger}};mA.NoopLoggerProvider=zF;mA.NOOP_LOGGER_PROVIDER=new zF});var VNe=w(VF=>{"use strict";Object.defineProperty(VF,"__esModule",{value:!0});VF.ProxyLogger=void 0;var lVt=GF(),xJ=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):lVt.NOOP_LOGGER}};VF.ProxyLogger=xJ});var WNe=w(WF=>{"use strict";Object.defineProperty(WF,"__esModule",{value:!0});WF.ProxyLoggerProvider=void 0;var dVt=IJ(),fVt=VNe(),OJ=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new fVt.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:dVt.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)}};WF.ProxyLoggerProvider=OJ});var ZNe=w(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.LogsAPI=void 0;var Fl=zNe(),pVt=IJ(),KNe=WNe(),NJ=class e{constructor(){this._proxyLoggerProvider=new KNe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Fl._global[Fl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Fl._global[Fl.GLOBAL_LOGS_API_KEY]=(0,Fl.makeGetter)(Fl.API_BACKWARDS_COMPATIBILITY_VERSION,t,pVt.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Fl._global[Fl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Fl._global,Fl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Fl._global[Fl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new KNe.ProxyLoggerProvider}};KF.LogsAPI=NJ});var PJ=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.logs=Np.NoopLogger=Np.NOOP_LOGGER=Np.SeverityNumber=void 0;var hVt=GNe();Object.defineProperty(Np,"SeverityNumber",{enumerable:!0,get:function(){return hVt.SeverityNumber}});var YNe=GF();Object.defineProperty(Np,"NOOP_LOGGER",{enumerable:!0,get:function(){return YNe.NOOP_LOGGER}});Object.defineProperty(Np,"NoopLogger",{enumerable:!0,get:function(){return YNe.NoopLogger}});var mVt=ZNe();Np.logs=mVt.LogsAPI.getInstance()});var JNe=w(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.disableInstrumentations=gA.enableInstrumentations=void 0;function gVt(e,t,n,r){for(let i=0,s=e.length;it.disable())}gA.disableInstrumentations=yVt});var $Ne=w(ZF=>{"use strict";Object.defineProperty(ZF,"__esModule",{value:!0});ZF.registerInstrumentations=void 0;var XNe=(Ce(),ke(Ye)),SVt=PJ(),QNe=JNe();function EVt(e){let t=e.tracerProvider||XNe.trace.getTracerProvider(),n=e.meterProvider||XNe.metrics.getMeterProvider(),r=e.loggerProvider||SVt.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,QNe.enableInstrumentations)(i,t,n,r),()=>{(0,QNe.disableInstrumentations)(i)}}ZF.registerInstrumentations=EVt});var cPe=w(YF=>{"use strict";Object.defineProperty(YF,"__esModule",{value:!0});YF.satisfies=void 0;var LJ=(Ce(),ke(Ye)),iPe=/^(?: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-]+)*))?$/,bVt=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,_Vt={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function TVt(e,t,n){if(!vVt(e))return LJ.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=kVt(e);if(!r)return!1;let i=[],s=sPe(r,t,i,n);return s&&!n?.includePrerelease?RVt(r,i):s}YF.satisfies=TVt;function vVt(e){return typeof e=="string"&&iPe.test(e)}function sPe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(CJ(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=ZVt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!CJ(e,s,n,r))return!1;return!0}return CJ(e,t,n,r)}function CJ(e,t,n,r){if(t=wVt(t,r),t.includes(" "))return sPe(e,t,n,r);{let i=IVt(t);return n.push(i),AVt(e,i)}}function AVt(e,t){if(t.invalid)return!1;if(!t.version||DJ(t.version))return!0;let n=tPe(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=tPe(r,i)}return _Vt[t.op]?.includes(n)}function RVt(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function wVt(e,t){return e=e.trim(),e=WVt(e,t),e=VVt(e),e=KVt(e,t),e=e.trim(),e}function wc(e){return!e||e.toLowerCase()==="x"||e==="*"}function kVt(e){let t=e.match(iPe);if(!t){LJ.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 IVt(e){if(!e)return{};let t=e.match(bVt);if(!t)return LJ.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 DJ(e){return e==="*"||e==="x"||e==="X"}function ePe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function xVt(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 OVt(e,t){if(DJ(e)||DJ(t))return 0;let[n,r]=xVt(ePe(e),ePe(t));return n>r?1:n)?=?)",nPe=`(?:${aPe}|${NVt})`,CVt=`(?:-(${nPe}(?:\\.${nPe})*))`,rPe=`${oPe}+`,MVt=`(?:\\+(${rPe}(?:\\.${rPe})*))`,MJ=`${aPe}|x|X|\\*`,pO=`[v=\\s]*(${MJ})(?:\\.(${MJ})(?:\\.(${MJ})(?:${CVt})?${MVt}?)?)?`,DVt=`^${PVt}\\s*${pO}$`,LVt=new RegExp(DVt),UVt=`^\\s*(${pO})\\s+-\\s+(${pO})\\s*$`,FVt=new RegExp(UVt),jVt="(?:~>?)",HVt=`^${jVt}${pO}$`,qVt=new RegExp(HVt),BVt="(?:\\^)",GVt=`^${BVt}${pO}$`,zVt=new RegExp(GVt);function VVt(e){let t=qVt;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 WVt(e,t){let n=zVt,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 KVt(e,t){let n=LVt;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 ZVt(e,t){let n=FVt;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 UJ=w(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});ra.massUnwrap=ra.unwrap=ra.massWrap=ra.wrap=void 0;var kc=console.error.bind(console);function hO(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 YVt=(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 hO(i,"__original",r),hO(i,"__unwrap",()=>{e[t]===i&&hO(e,t,r)}),hO(i,"__wrapped",!0),hO(e,t,i),i};ra.wrap=YVt;var JVt=(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,ra.wrap)(r,i,n)})})};ra.massWrap=JVt;var XVt=(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}};ra.unwrap=XVt;var QVt=(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,ra.unwrap)(n,r)})})};ra.massUnwrap=QVt;function mO(e){e&&e.logger&&(typeof e.logger!="function"?kc("new logger isn't a function, not replacing"):kc=e.logger)}ra.default=mO;mO.wrap=ra.wrap;mO.massWrap=ra.massWrap;mO.unwrap=ra.unwrap;mO.massUnwrap=ra.massUnwrap});var uPe=w(XF=>{"use strict";Object.defineProperty(XF,"__esModule",{value:!0});XF.InstrumentationAbstract=void 0;var FJ=(Ce(),ke(Ye)),$Vt=PJ(),JF=UJ(),jJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=FJ.diag.createComponentLogger({namespace:t}),this._tracer=FJ.trace.getTracer(t,n),this._meter=FJ.metrics.getMeter(t,n),this._logger=$Vt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=JF.wrap;_unwrap=JF.unwrap;_massWrap=JF.massWrap;_massUnwrap=JF.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)}}};XF.InstrumentationAbstract=jJ});var dPe=w((Jyr,lPe)=>{var yA=1e3,SA=yA*60,EA=SA*60,bb=EA*24,e2t=bb*7,t2t=bb*365.25;lPe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return n2t(e);if(n==="number"&&isFinite(e))return t.long?i2t(e):r2t(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function n2t(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*t2t;case"weeks":case"week":case"w":return n*e2t;case"days":case"day":case"d":return n*bb;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 r2t(e){var t=Math.abs(e);return t>=bb?Math.round(e/bb)+"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 i2t(e){var t=Math.abs(e);return t>=bb?QF(e,t,bb,"day"):t>=EA?QF(e,t,EA,"hour"):t>=SA?QF(e,t,SA,"minute"):t>=yA?QF(e,t,yA,"second"):e+" ms"}function QF(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var HJ=w((Xyr,fPe)=>{function s2t(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=dPe(),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"%";b++;let R=n.formatters[A];if(typeof R=="function"){let x=y[b];T=R.call(g,x),y.splice(b,1),b--}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}fPe.exports=s2t});var pPe=w((su,$F)=>{su.formatArgs=a2t;su.save=c2t;su.load=u2t;su.useColors=o2t;su.storage=l2t();su.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`."))}})();su.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 o2t(){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 a2t(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+$F.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)}su.log=console.debug||console.log||(()=>{});function c2t(e){try{e?su.storage.setItem("debug",e):su.storage.removeItem("debug")}catch{}}function u2t(){let e;try{e=su.storage.getItem("debug")||su.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function l2t(){try{return localStorage}catch{}}$F.exports=HJ()(su);var{formatters:d2t}=$F.exports;d2t.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var mPe=w((Qyr,hPe)=>{"use strict";hPe.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 f2t=Z("os"),gPe=Z("tty"),jl=mPe(),{env:Po}=process,ej;jl("no-color")||jl("no-colors")||jl("color=false")||jl("color=never")?ej=0:(jl("color")||jl("colors")||jl("color=true")||jl("color=always"))&&(ej=1);function p2t(){if("FORCE_COLOR"in Po)return Po.FORCE_COLOR==="true"?1:Po.FORCE_COLOR==="false"?0:Po.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Po.FORCE_COLOR,10),3)}function h2t(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function m2t(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=p2t();r!==void 0&&(ej=r);let i=n?ej:r;if(i===0)return 0;if(n){if(jl("color=16m")||jl("color=full")||jl("color=truecolor"))return 3;if(jl("color=256"))return 2}if(e&&!t&&i===void 0)return 0;let s=i||0;if(Po.TERM==="dumb")return s;if(process.platform==="win32"){let o=f2t.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in Po)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(o=>o in Po)||Po.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in Po)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Po.TEAMCITY_VERSION)?1:0;if(Po.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Po){let o=Number.parseInt((Po.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Po.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Po.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Po.TERM)||"COLORTERM"in Po?1:s}function qJ(e,t={}){let n=m2t(e,{streamIsTTY:e&&e.isTTY,...t});return h2t(n)}yPe.exports={supportsColor:qJ,stdout:qJ({isTTY:gPe.isatty(1)}),stderr:qJ({isTTY:gPe.isatty(2)})}});var EPe=w((Co,nj)=>{var g2t=Z("tty"),tj=Z("util");Co.init=v2t;Co.log=b2t;Co.formatArgs=S2t;Co.save=_2t;Co.load=T2t;Co.useColors=y2t;Co.destroy=tj.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=BJ();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 y2t(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:g2t.isatty(process.stderr.fd)}function S2t(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+"+nj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=E2t()+t+" "+e[0]}function E2t(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function b2t(...e){return process.stderr.write(tj.formatWithOptions(Co.inspectOpts,...e)+` -`)}function _2t(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function T2t(){return process.env.DEBUG}function v2t(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};SPe.O=function(e){return this.inspectOpts.colors=this.useColors,tj.inspect(e,this.inspectOpts)}});var zJ=w((eSr,GJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?GJ.exports=pPe():GJ.exports=EPe()});var gO=w((tSr,bPe)=>{"use strict";var VJ=Z("path").sep;bPe.exports=function(e){var t=e.split(VJ),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]+VJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+VJ;return{name:i,basedir:o,path:u}}}});var _b=w((nSr,ZJ)=>{"use strict";var bA=Z("path"),Xd=Z("module"),ks=zJ()("require-in-the-middle"),A2t=gO();ZJ.exports=yO;ZJ.exports.Hook=yO;var WJ,rj;if(Xd.isBuiltin)rj=Xd.isBuiltin;else if(Xd.builtinModules)rj=e=>e.startsWith("node:")?!0:(WJ===void 0&&(WJ=new Set(Xd.builtinModules)),WJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var R2t=/([/\\]index)?(\.js)?$/,KJ=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=Z.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=Z.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in Z.cache?Z.cache[t][this._kRitmExports]=n:(ks('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function yO(e,t,n){if(!(this instanceof yO))return new yO(e,t,n);if(typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),typeof Xd._resolveFilename!="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof Xd._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 KJ,this._unhooked=!1,this._origRequire=Xd.prototype.require;let r=this,i=new Set,s=t?t.internals===!0:!1,o=Array.isArray(e);ks("registering require hook"),this._require=Xd.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=rj(l),f;if(d){if(f=l,l.startsWith("node:")){let E=l.slice(5);rj(E)&&(f=E)}}else{if(u)return ks("call to process.getBuiltinModule with unknown built-in id"),r._origGetBuiltinModule.apply(this,c);try{f=Xd._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 y=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),y;if(i.delete(f),d===!0){if(o===!0&&e.includes(f)===!1)return ks("ignoring core module not on whitelist: %s",f),y;p=f}else if(o===!0&&e.includes(f)){let E=bA.parse(f);p=E.name,h=E.dir}else{let E=A2t(f);if(E===void 0)return ks("could not parse filename: %s",f),y;p=E.name,h=E.basedir;let S=w2t(E);ks("resolved filename to module: %s (id: %s, resolved: %s, basedir: %s)",p,l,S,h);let b=!1;if(o){if(!l.startsWith(".")&&e.includes(l)&&(p=l,b=!0),!e.includes(p)&&!e.includes(S))return y;e.includes(S)&&S!==p&&(p=S,b=!0)}if(!b){let _;try{_=Z.resolve(p,{paths:[h]})}catch{return ks("could not resolve module: %s",p),r._cache.set(f,y,d),y}if(_!==f)if(s===!0)p=p+bA.sep+bA.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,y,d),y}}r._cache.set(f,y,d),ks("calling require hook: %s",p);let g=n(y,p,h);return r._cache.set(f,g,d),ks("returning module: %s",p),g}}yO.prototype.unhook=function(){this._unhooked=!0,this._require===Xd.prototype.require?(Xd.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 w2t(e){let t=bA.sep!=="/"?e.path.split(bA.sep).join("/"):e.path;return bA.posix.join(e.name,t).replace(R2t,"")}});var _Pe=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.ModuleNameTrie=dy.ModuleNameSeparator=void 0;dy.ModuleNameSeparator="/";var ij=class{hooks=[];children=new Map},YJ=class{_trie=new ij;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(dy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new ij,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(dy.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))}};dy.ModuleNameTrie=YJ});var vPe=w(sj=>{"use strict";Object.defineProperty(sj,"__esModule",{value:!0});sj.RequireInTheMiddleSingleton=void 0;var k2t=_b(),TPe=Z("path"),JJ=_Pe(),I2t=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),XJ=class e{_moduleNameTrie=new JJ.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new k2t.Hook(null,{internals:!0},(t,n,r)=>{let i=x2t(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 I2t?new e:this._instance=this._instance??new e}};sj.RequireInTheMiddleSingleton=XJ;function x2t(e){return TPe.sep!==JJ.ModuleNameSeparator?e.split(TPe.sep).join(JJ.ModuleNameSeparator):e}});var IPe=w(SO=>{var APe=[],QJ=new WeakMap,RPe=new WeakMap,wPe=new Map,kPe=[],O2t={set(e,t,n){let r=QJ.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=RPe.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=QJ.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function N2t(e,t,n,r,i){wPe.set(e,i),QJ.set(t,n),RPe.set(t,r);let s=new Proxy(t,O2t);APe.forEach(o=>o(e,s,i)),kPe.push([e,s,i])}SO.register=N2t;SO.importHooks=APe;SO.specifiers=wPe;SO.toHook=kPe});var nX=w((aSr,TA)=>{var xPe=Z("path"),P2t=gO(),{fileURLToPath:C2t}=Z("url"),{MessageChannel:M2t}=Z("worker_threads"),{isBuiltin:$J}=Z("module");$J||($J=()=>!0);var{importHooks:eX,specifiers:OPe,toHook:D2t}=IPe();function L2t(e,t){if(!(process.env.TURBOPACK??process.argv.includes("--turbo")))return!1;let r=e.slice(0,e.lastIndexOf("-"));return t.endsWith(r)}function NPe(e){eX.push(e),D2t.forEach(([t,n,r])=>e(t,n,r))}function PPe(e){let t=eX.indexOf(e);t>-1&&eX.splice(t,1)}function _A(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var tX;function U2t(){let{port1:e,port2:t}=new M2t,n=0,r;tX=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 EO(e,t,n){if(!(this instanceof EO))return new EO(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;tX&&Array.isArray(e)&&tX(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);$J(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=C2t(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=P2t(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)_A(n,s,u,void 0);else if(d===i){if(!l)_A(n,s,i,l);else if(l.endsWith(OPe.get(a))||L2t(OPe.get(a),l))_A(n,s,i,l);else if(r){let f=i+xPe.sep+xPe.relative(l,u);_A(n,s,f,l)}}else d===o&&_A(n,s,o,l);else _A(n,s,i,l)},NPe(this._iitmHook)}EO.prototype.unhook=function(){PPe(this._iitmHook)};TA.exports=EO;TA.exports.Hook=EO;TA.exports.addHook=NPe;TA.exports.removeHook=PPe;TA.exports.createAddHookMessageChannel=U2t});var rX=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.isWrapped=fy.safeExecuteInTheMiddleAsync=fy.safeExecuteInTheMiddle=void 0;function F2t(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}fy.safeExecuteInTheMiddle=F2t;async function j2t(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}}fy.safeExecuteInTheMiddleAsync=j2t;function H2t(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}fy.isWrapped=H2t});var DPe=w(oj=>{"use strict";Object.defineProperty(oj,"__esModule",{value:!0});oj.InstrumentationBase=void 0;var bO=Z("path"),CPe=Z("util"),q2t=cPe(),iX=UJ(),B2t=uPe(),G2t=vPe(),z2t=nX(),_O=(Ce(),ke(Ye)),V2t=_b(),W2t=Z("fs"),K2t=rX(),sX=class extends B2t.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=G2t.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,K2t.isWrapped)(t[n])&&this._unwrap(t,n),CPe.types.isProxy(t)){let i=(0,iX.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,iX.wrap)(t,n,r)};_unwrap=(t,n)=>CPe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,iX.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{_O.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){_O.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{_O.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){_O.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,W2t.readFileSync)(bO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{_O.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 MPe(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&&MPe(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 V2t.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new z2t.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}};oj.InstrumentationBase=sX;function MPe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,q2t.satisfies)(t,r,{includePrerelease:n}))}});var LPe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.normalize=void 0;var Z2t=Z("path");Object.defineProperty(aj,"normalize",{enumerable:!0,get:function(){return Z2t.normalize}})});var UPe=w(vA=>{"use strict";Object.defineProperty(vA,"__esModule",{value:!0});vA.normalize=vA.InstrumentationBase=void 0;var Y2t=DPe();Object.defineProperty(vA,"InstrumentationBase",{enumerable:!0,get:function(){return Y2t.InstrumentationBase}});var J2t=LPe();Object.defineProperty(vA,"normalize",{enumerable:!0,get:function(){return J2t.normalize}})});var oX=w(AA=>{"use strict";Object.defineProperty(AA,"__esModule",{value:!0});AA.normalize=AA.InstrumentationBase=void 0;var FPe=UPe();Object.defineProperty(AA,"InstrumentationBase",{enumerable:!0,get:function(){return FPe.InstrumentationBase}});Object.defineProperty(AA,"normalize",{enumerable:!0,get:function(){return FPe.normalize}})});var jPe=w(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});cj.InstrumentationNodeModuleDefinition=void 0;var aX=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}};cj.InstrumentationNodeModuleDefinition=aX});var HPe=w(uj=>{"use strict";Object.defineProperty(uj,"__esModule",{value:!0});uj.InstrumentationNodeModuleFile=void 0;var X2t=oX(),cX=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,X2t.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};uj.InstrumentationNodeModuleFile=cX});var qPe=w(Tb=>{"use strict";Object.defineProperty(Tb,"__esModule",{value:!0});Tb.semconvStabilityFromStr=Tb.SemconvStability=void 0;var lj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(lj=Tb.SemconvStability||(Tb.SemconvStability={}));function Q2t(e,t){let n=lj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=lj.DUPLICATE;break}else i.toLowerCase()===e&&(n=lj.STABLE);return n}Tb.semconvStabilityFromStr=Q2t});var Yt=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 $2t=$Ne();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return $2t.registerInstrumentations}});var eWt=oX();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return eWt.InstrumentationBase}});var tWt=jPe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return tWt.InstrumentationNodeModuleDefinition}});var nWt=HPe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return nWt.InstrumentationNodeModuleFile}});var uX=rX();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return uX.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return uX.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return uX.safeExecuteInTheMiddleAsync}});var BPe=qPe();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return BPe.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return BPe.semconvStabilityFromStr}})});var GPe=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 zPe=w(TO=>{"use strict";Object.defineProperty(TO,"__esModule",{value:!0});TO.AttributeNames=void 0;var rWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(rWt=TO.AttributeNames||(TO.AttributeNames={}))});var lX=w(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});Pp.DEFAULT_QUERY_STRINGS_TO_REDACT=Pp.STR_REDACTED=Pp.SYNTHETIC_BOT_NAMES=Pp.SYNTHETIC_TEST_NAMES=void 0;Pp.SYNTHETIC_TEST_NAMES=["alwayson"];Pp.SYNTHETIC_BOT_NAMES=["googlebot","bingbot"];Pp.STR_REDACTED="REDACTED";Pp.DEFAULT_QUERY_STRINGS_TO_REDACT=["sig","Signature","AWSAccessKeyId","X-Goog-Signature"]});var WPe=w((bSr,VPe)=>{"use strict";var iWt=Z("util");function dX(e,t){Error.captureStackTrace(this,dX),this.name=this.constructor.name,this.message=e,this.input=t}iWt.inherits(dX,Error);VPe.exports=dX});var ZPe=w((_Sr,KPe)=>{"use strict";function sWt(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 oWt(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 aWt(e){return e>=32&&e<=126}function cWt(e){return e>=128&&e<=255}KPe.exports={isDelimiter:sWt,isTokenChar:oWt,isExtended:cWt,isPrint:aWt}});var $Pe=w((TSr,QPe)=>{"use strict";var uWt=Z("util"),RA=WPe(),dj=ZPe(),lWt=dj.isDelimiter,YPe=dj.isTokenChar,JPe=dj.isExtended,dWt=dj.isPrint;function XPe(e){return e.replace(/\\(.)/g,"$1")}function vO(e,t){return uWt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function fWt(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 AO=(Ce(),ke(Ye)),fn=(Nn(),ke(Mr)),dt=GPe(),eCe=fr(),rl=Yt(),pWt=Z("url"),pj=zPe(),tCe=lX(),fj=lX(),hWt=$Pe(),mWt=(e,t,n="http:",r=Array.from(fj.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,fj.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${fj.STR_REDACTED}:${fj.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=mWt;var gWt=(e,t)=>{let n=e===AO.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=yWt;var SWt=(e,t,n)=>{let r=t.message;n&rl.SemconvStability.OLD&&(e.setAttribute(pj.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(pj.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&rl.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:AO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=SWt;var EWt=(e,t)=>{let n=rCe(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=EWt;var bWt=(e,t)=>{let n=rCe(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=bWt;function rCe(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var _Wt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=_Wt;function TWt(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 vWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=TWt(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 pWt.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=vWt;var AWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=AWt;var RWt=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=RWt;var wWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=oCe(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]=iCe(u)),u!==void 0&&(d[dt.ATTR_HTTP_USER_AGENT]=u),n){case rl.SemconvStability.STABLE:return Object.assign(f,t.hookAttributes);case rl.SemconvStability.OLD:return Object.assign(d,t.hookAttributes)}return Object.assign(d,f,t.hookAttributes)};Tt.getOutgoingRequestAttributes=wWt;var kWt=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=kWt;var IWt=(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=IWt;var iCe=e=>{let t=String(e).toLowerCase();for(let n of tCe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of tCe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},xWt=(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[pj.AttributeNames.HTTP_STATUS_TEXT]=(r||"").toUpperCase()),(0,Tt.setAttributesFromHttpKind)(i,o),t){case rl.SemconvStability.STABLE:return a;case rl.SemconvStability.OLD:return o}return Object.assign(o,a)};Tt.getOutgoingRequestAttributesOnResponse=xWt;var OWt=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=OWt;var NWt=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=NWt;function py(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 PWt(e,t){let n=e.headers.forwarded;if(n){for(let s of aCe(n))if(s.host)return py(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?py(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?py(r,e.headers["x-forwarded-proto"][0]):py(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?py(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?py(r[0],e.headers["x-forwarded-proto"][0]):py(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?py(i,t):null}function sCe(e){let t=e.headers.forwarded;if(t){for(let i of aCe(t))if(i.for)return nCe(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(),nCe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=sCe;function nCe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function CWt(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 MWt=(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=CWt(r,e,n),m,y;if(o!==rl.SemconvStability.OLD){let g=oCe(l),E=PWt(e,r),S=sCe(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]=iCe(f))}if(o!==rl.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 rl.SemconvStability.STABLE:return Object.assign(m,s);case rl.SemconvStability.OLD:return Object.assign(y,s);default:return Object.assign(y,m,s)}};Tt.getIncomingRequestAttributes=MWt;var DWt=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=DWt;var LWt=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,eCe.getRPCMetadata)(AO.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[pj.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===eCe.RPCType.HTTP&&a.route!==void 0&&(c[fn.ATTR_HTTP_ROUTE]=a.route,o[fn.ATTR_HTTP_ROUTE]=a.route),n){case rl.SemconvStability.STABLE:return o;case rl.SemconvStability.OLD:return c}return Object.assign(c,o)};Tt.getIncomingRequestAttributesOnResponse=LWt;var UWt=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=UWt;var FWt=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=FWt;function jWt(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=jWt;var HWt=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function oCe(e){if(e==null)return"GET";let t=e.toUpperCase();return HWt.has(t)?t:"_OTHER"}function aCe(e){try{return hWt(e)}catch{return[]}}});var uCe=w(hj=>{"use strict";Object.defineProperty(hj,"__esModule",{value:!0});hj.HttpInstrumentation=void 0;var tn=(Ce(),ke(Ye)),hy=fr(),qWt=Z("url"),BWt=BNe(),Mo=Yt(),fX=Z("events"),Oi=(Nn(),ke(Mr)),Is=cCe(),pX=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",BWt.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(fX.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(fX.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,hy.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,hy.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 y=tn.propagation.extract(tn.ROOT_CONTEXT,l),g=r._startHttpSpan(u,f,y),E={type:hy.RPCType.HTTP,span:g};return tn.context.with((0,hy.setRPCMetadata)(tn.trace.setSpan(y,g),E),()=>{tn.context.bind(tn.context.active(),a),tn.context.bind(tn.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(fX.errorMonitor,b=>{S=!0,r._onServerResponseError(g,h,m,p,b)}),(0,Mo.safeExecuteInTheMiddle)(()=>n.apply(this,[s,...o]),b=>{if(b)throw r._onServerResponseError(g,h,m,p,b),b})})}}_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 qWt.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,hy.hrTime)(),m=(0,Is.getOutgoingRequestMetricAttributes)(p),y={[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]&&(y[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]=p[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]),p[Oi.ATTR_NETWORK_PROTOCOL_VERSION]&&(y[Oi.ATTR_NETWORK_PROTOCOL_VERSION]=p[Oi.ATTR_NETWORK_PROTOCOL_VERSION]);let g={kind:tn.SpanKind.CLIENT,attributes:p},E=r._startHttpSpan(c,g),S=tn.context.active(),b=tn.trace.setSpan(S,E);return l.headers?l.headers=Object.assign({},l.headers):l.headers={},tn.propagation.inject(b,l.headers),tn.context.with(b,()=>{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]),A=>{if(A)throw r._onOutgoingRequestError(E,m,y,h,A),A});return r._diag.debug(`${t} instrumentation outgoingRequest`),tn.context.bind(S,T),r._traceClientRequest(T,E,h,m,y)})}}_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,hy.hrTimeToMilliseconds)((0,hy.hrTimeDuration)(r,(0,hy.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)}}}};hj.HttpInstrumentation=pX});var lCe=w(mj=>{"use strict";Object.defineProperty(mj,"__esModule",{value:!0});mj.HttpInstrumentation=void 0;var GWt=uCe();Object.defineProperty(mj,"HttpInstrumentation",{enumerable:!0,get:function(){return GWt.HttpInstrumentation}})});var Fe,Ni=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,za=v(()=>{qt=globalThis});var Pn,gj=v(()=>{Pn="10.47.0"});function Ic(){return my(qt),qt}function my(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Pn,t[Pn]=t[Pn]||{}}function Qd(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Pn]=r[Pn]||{};return i[e]||(i[e]=t())}var Hl=v(()=>{gj();za()});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 VWt(){mX().enabled=!0}function WWt(){mX().enabled=!1}function dCe(){return mX().enabled}function KWt(...e){hX("log",...e)}function ZWt(...e){hX("warn",...e)}function YWt(...e){hX("error",...e)}function hX(e,...t){Fe&&dCe()&&xs(()=>{qt.console[e](`${zWt}[${e}]:`,...t)})}function mX(){return Fe?Qd("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var RO,zWt,wA,Y,br=v(()=>{Hl();Ni();za();RO=["debug","info","warn","error","log","assert","trace"],zWt="Sentry Logger ",wA={};Y={enable:VWt,disable:WWt,isEnabled:dCe,log:KWt,warn:ZWt,error:YWt}});function Sj(...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=fCe.test(c)?c.replace(fCe,"$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 hCe(s.slice(i))}}function yX(e){return Array.isArray(e)?Sj(...e):e}function hCe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(yj(t).function||"")&&t.pop(),t.reverse(),pCe.test(yj(t).function||"")&&(t.pop(),pCe.test(yj(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||yj(t).filename,function:n.function||"?"}))}function yj(e){return e[e.length-1]||{}}function wO(e){try{return!e||typeof e!="function"?gX:e.name||gX}catch{return gX}}function Ej(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function mCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var fCe,pCe,gX,kA=v(()=>{fCe=/\(error: (.*)\)/,pCe=/captureMessage|captureException/;gX=""});function IA(e,t){bj[e]=bj[e]||[],bj[e].push(t)}function xA(e,t){if(!gCe[e]){gCe[e]=!0;try{t()}catch(n){Fe&&Y.error(`Error while instrumenting ${e}`,n)}}}function OA(e,t){let n=e&&bj[e];if(n)for(let r of n)try{r(t)}catch(i){Fe&&Y.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: ${wO(r)} -Error:`,i)}}var bj,gCe,_j=v(()=>{Ni();br();kA();bj={},gCe={}});function yCe(e){let t="error";IA(t,e),xA(t,JWt)}function JWt(){SX=qt.onerror,qt.onerror=function(e,t,n,r,i){return OA("error",{column:r,error:i,line:n,msg:e,url:t}),SX?SX.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var SX,SCe=v(()=>{za();_j();SX=null});function ECe(e){let t="unhandledrejection";IA(t,e),xA(t,XWt)}function XWt(){EX=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return OA("unhandledrejection",e),EX?EX.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var EX,bCe=v(()=>{za();_j();EX=null});function Cp(e){switch(_Ce.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Mp(e,Error)}}function Tj(e,t){return _Ce.call(e)===`[object ${t}]`}function bX(e){return Tj(e,"ErrorEvent")}function gy(e){return Tj(e,"String")}function NA(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function kO(e){return e===null||NA(e)||typeof e!="object"&&typeof e!="function"}function dm(e){return Tj(e,"Object")}function _X(e){return typeof Event<"u"&&Mp(e,Event)}function TX(e){return typeof Element<"u"&&Mp(e,Element)}function vX(e){return Tj(e,"RegExp")}function ia(e){return!!(e?.then&&typeof e.then=="function")}function AX(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 IO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var _Ce,Va=v(()=>{_Ce=Object.prototype.toString});function TCe(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||$Wt;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 eKt(e,t){let n=e,r=[];if(!n?.tagName)return"";if(QWt.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&&gy(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 QWt,$Wt,vCe=v(()=>{Va();za();QWt=qt,$Wt=80});function RX(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&wCe(i,r);try{e[t]=i}catch{Fe&&Y.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&&Y.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function wCe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,Gs(e,"__sentry_original__",t)}catch{}}function wX(e){return e.__sentry_original__}function vj(e){if(Cp(e))return{message:e.message,name:e.name,stack:e.stack,...RCe(e)};if(_X(e)){let t={type:e.type,target:ACe(e.target),currentTarget:ACe(e.currentTarget),...RCe(e)};return typeof CustomEvent<"u"&&Mp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function ACe(e){try{return TX(e)?TCe(e):Object.prototype.toString.call(e)}catch{return""}}function RCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function kX(e){let t=Object.keys(vj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var $d=v(()=>{Ni();vCe();br();Va()});function vb(e){if(PA!==void 0)return PA?PA(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=qt;return t in n&&typeof n[t]=="function"?(PA=n[t],PA(e)):(PA=null,e())}function Do(){return vb(()=>Math.random())}function ql(){return vb(()=>Date.now())}var PA,yy=v(()=>{za()});function Sy(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function IX(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(()=>{Va();kA()});function tKt(){let e=qt;return e.crypto||e.msCrypto}function nKt(){return Do()*16}function ho(e=tKt()){try{if(e?.randomUUID)return vb(()=>e.randomUUID()).replace(/-/g,"")}catch{}return OX||(OX="10000000100040008000"+1e11),OX.replace(/[018]/g,t=>(t^(nKt()&15)>>t/4).toString(16))}function kCe(e){return e.exception?.values?.[0]}function _y(e){let{message:t,event_id:n}=e;if(t)return t;let r=kCe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function PX(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=kCe(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 NX(e){return parseInt(e||"",10)}function CX(e){let t=e.match(rKt)||[],n=NX(t[1]),r=NX(t[2]),i=NX(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 Aj(e){if(ICe(e))return!0;try{Gs(e,"__sentry_captured__",!0)}catch{}return!1}function ICe(e){try{return e.__sentry_captured__}catch{}}var OX,rKt,Dp=v(()=>{$d();yy();za();rKt=/^(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 ql()/OCe}function iKt(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return pm;let t=e.timeOrigin;return()=>(t+vb(()=>e.now()))/OCe}function Ty(){return(xCe??(xCe=iKt()))()}var OCe,xCe,vy=v(()=>{yy();za();OCe=1e3});function NCe(e){let t=Ty(),n={sid:ho(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>sKt(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||Ty(),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:ho()),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 PCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),hm(e,n)}function sKt(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 Rj=v(()=>{Dp();vy()});function Ay(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]=Ay(r[i],t[i],n-1));return r}var wj=v(()=>{});function Wa(){return ho()}function Ka(){return ho().substring(16)}var Ry=v(()=>{Dp()});function Ab(e,t){t?Gs(e,MX,t):delete e[MX]}function Rb(e){return e[MX]}var MX,kj=v(()=>{$d();MX="_sentrySpan"});var oKt,ou,xO=v(()=>{Ni();Rj();br();Va();wj();Dp();Ry();yy();kj();by();vy();oKt=100,ou=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:Wa(),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,Ab(t,Rb(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,Ab(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Wa(),sampleRand:Do()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:oKt;if(r<=0)return this;let i={timestamp:pm(),...t,message:t.message?Sy(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:Rb(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=Ay(this._sdkProcessingMetadata,t,2),this}setPropagationContext(t){return this._propagationContext=t,this}getPropagationContext(){return this._propagationContext}captureException(t,n){let r=n?.event_id||ho();if(!this._client)return Fe&&Y.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||ho();if(!this._client)return Fe&&Y.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||ho();return this._client?(this._client.captureEvent(t,{...n,event_id:r},this),r):(Fe&&Y.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 Qd("defaultCurrentScope",()=>new ou)}function Bl(){return Qd("defaultIsolationScope",()=>new ou)}var DX=v(()=>{Hl();xO()});var CCe,MCe,Ij,aKt,LX=v(()=>{CCe=e=>e instanceof Promise&&!e[MCe],MCe=Symbol("chained PromiseLike"),Ij=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return CCe(r)&&CCe(e)?r:aKt(e,r)},aKt=(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,{[MCe]:!0}),t}});function DA(){let e=Ic(),t=my(e);return t.stack=t.stack||new UX(MA(),Bl())}function cKt(e){return DA().withScope(e)}function uKt(e,t){let n=DA();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function DCe(e){return DA().withScope(()=>e(DA().getIsolationScope()))}function LCe(){return{withIsolationScope:DCe,withScope:cKt,withSetScope:uKt,withSetIsolationScope:(e,t)=>DCe(t),getCurrentScope:()=>DA().getScope(),getIsolationScope:()=>DA().getIsolationScope()}}var UX,UCe=v(()=>{DX();xO();LX();Va();Hl();UX=class{constructor(t,n){let r;t?r=t:r=new ou;let i;n?i=n:i=new ou,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 ia(r)?Ij(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 FX(e){let t=Ic(),n=my(t);n.acs=e}function ef(e){let t=my(e);return t.acs?t.acs:LCe()}var LA=v(()=>{Hl();UCe()});function jCe(){return FCe?.()}function jX(){return FCe!==void 0}function Un(){let e=Ic();return ef(e).getCurrentScope()}function vn(){let e=Ic();return ef(e).getIsolationScope()}function xj(){return Qd("globalScope",()=>new ou)}function Za(...e){let t=Ic(),n=ef(t);if(e.length===2){let[r,i]=e;return r?n.withSetScope(r,i):n.withScope(i)}return n.withScope(e[0])}function OO(...e){let t=Ic(),n=ef(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 wb(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||Ka()};return i&&(o.parent_span_id=i),o}var FCe,mo=v(()=>{LA();Hl();xO();Ry()});var Wi,tf,HX,zt,At,qX,BX,Gl,UA,FA,GX,zX,VX,WX,wy,KX,Lo=v(()=>{Wi="sentry.source",tf="sentry.sample_rate",HX="sentry.previous_trace_sample_rate",zt="sentry.op",At="sentry.origin",qX="sentry.measurement_unit",BX="sentry.measurement_value",Gl="sentry.custom_span_name",UA="sentry.profile_id",FA="sentry.exclusive_time",GX="cache.hit",zX="cache.key",VX="cache.item_size",WX="http.request.method",wy="url.full",KX="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 HCe=v(()=>{});function lKt(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function dKt(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,BCe,lKt(n)),Gs(e,qCe,t))}function nf(e){let t=e;return{scope:t[qCe],isolationScope:dKt(t[BCe])}}var qCe,BCe,jA=v(()=>{$d();za();qCe="_sentryScope",BCe="_sentryIsolationScope"});function gm(e){let t=Ib(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 kb(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Lp}${r}`]=i),n),{});return Oj(t)}function Ib(e){if(!(!e||!gy(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=GCe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):GCe(e)}function GCe(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 Oj(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>zCe?(Fe&&Y.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Lp,zCe,PO=v(()=>{Ni();br();Va();Lp="sentry-",zCe=8192});function hKt(e){return e==="http"||e==="https"}function il(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 mKt(e){let t=pKt.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 VCe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function VCe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function gKt(e){if(!Fe)return!0;let{port:t,projectId:n,protocol:r}=e;return["protocol","publicKey","host","projectId"].find(o=>e[o]?!1:(Y.error(`Invalid Sentry Dsn: ${o} missing`),!0))?!1:n.match(/^\d+$/)?hKt(r)?t&&isNaN(parseInt(t,10))?(Y.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):!0:(Y.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(Y.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function yKt(e){return e.match(fKt)?.[1]}function Nj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=yKt(n)),r}function WCe(e){let t=typeof e=="string"?mKt(e):VCe(e);if(!(!t||!gKt(t)))return t}var fKt,pKt,ym=v(()=>{Ni();br();fKt=/^o(\d+)\./,pKt=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/});function sl(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 KCe(e){if(!e)return;let t=e.match(Pj);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 CO(e,t){let n=KCe(e),r=gm(t);if(!n?.traceId)return{traceId:Wa(),sampleRand:Do()};let i=SKt(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 ky(e=Wa(),t=Ka(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Iy(e=Wa(),t=Ka(),n){return`00-${e}-${t}-${n?"01":"00"}`}function SKt(e,t){let n=sl(t?.sample_rand);if(n!==void 0)return n;let r=sl(t?.sample_rate);return r&&e?.parentSampled!==void 0?e.parentSampled?Do()*r:r+Do()*(1-r):Do()}function ZX(e,t){let n=Nj(e);return t&&n&&t!==n?(Y.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)?(Y.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 Pj,Cj=v(()=>{br();PO();ym();HA();Ry();yy();Pj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function JCe(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 xy(e){let{spanId:t,traceId:n,isRemote:r}=e.spanContext(),i=r?t:vt(e).parent_span_id,s=nf(e).scope,o=r?s?.getPropagationContext().propagationSpanId||Ka():t;return{parent_span_id:i,span_id:o,trace_id:n}}function Uj(e){let{traceId:t,spanId:n}=e.spanContext(),r=rf(e);return ky(t,n,r)}function XCe(e){let{traceId:t,spanId:n}=e.spanContext(),r=rf(e);return Iy(t,n,r)}function xb(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===Lj,attributes:s,...i}))}function au(e){return typeof e=="number"?YCe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?YCe(e.getTime()):Ty()}function YCe(e){return e>9999999999?e/1e3:e}function vt(e){if(_Kt(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(bKt(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:au(i),timestamp:au(o)||void 0,status:Ob(a),op:r[zt],origin:r[At],links:xb(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function bKt(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function _Kt(e){return typeof e.getSpanJSON=="function"}function rf(e){let{traceFlags:t}=e.spanContext();return t===Lj}function Ob(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function qA(e,t){let n=e[YX]||e;Gs(t,YX,n),e[MO]?e[MO].add(t):Gs(e,MO,new Set([t]))}function Fj(e){let t=new Set;function n(r){if(!t.has(r)&&rf(r)){t.add(r);let i=r[MO]?Array.from(r[MO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[YX]||e}function zl(){let e=Ic(),t=ef(e);return t.getActiveSpan?t.getActiveSpan():Rb(Un())}function DO(){ZCe||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),ZCe=!0)}var Dj,Lj,ZCe,MO,YX,xc=v(()=>{LA();Hl();mo();Lo();jA();$d();Ry();vy();Cj();br();kj();Dj=0,Lj=1,ZCe=!1;MO="_sentryChildSpans",YX="_sentryRootSpan"});function $Ce(){if(QCe)return;function e(){let t=zl(),n=t&&cs(t);if(n){let r="internal_error";Fe&&Y.log(`[Tracing] Root span: ${r} -> Global error occurred`),n.setStatus({code:2,message:r})}}e.tag="sentry_tracingErrorCallback",QCe=!0,yCe(e),ECe(e)}var QCe,eMe=v(()=>{Ni();SCe();bCe();br();xc();QCe=!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 LO=v(()=>{mo()});function tMe(e){Y.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function UO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(TKt(n)){if(fm(e.description,n))return Fe&&tMe(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&&tMe(e),!0}return!1}function nMe(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 TKt(e){return typeof e=="string"||e instanceof RegExp}var JX=v(()=>{Ni();br();by()});var BA,jj=v(()=>{BA="production"});function Hj(e,t){Gs(e,rMe,t)}function XX(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:Nj(t)};return t.emit("createDsc",i),i}function Up(e,t){let n=t.getPropagationContext();return n.dsc||XX(n.traceId,e)}function Ns(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[tf]??i[HX];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[rMe];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&gm(u);if(l)return a(l);let d=XX(e.spanContext().traceId,t),f=i[Wi],p=r.description;return f!=="url"&&p&&(d.transaction=p),Os()&&(d.sampled=String(rf(n)),d.sample_rand=s?.get("sentry.sample_rand")??nf(n).scope?.getPropagationContext().sampleRand.toString()),a(d),t.emit("createDsc",d,n),d}var rMe,Sm=v(()=>{jj();mo();Lo();PO();ym();LO();$d();xc();jA();rMe="_frozenDsc"});var Oy,iMe=v(()=>{Ry();xc();Oy=class{constructor(t={}){this._traceId=t.traceId||Wa(),this._spanId=t.spanId||Ka()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Dj}}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 sf(e,t=100,n=1/0){try{return QX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function $X(e,t=3,n=100*1024){let r=sf(e,t);return wKt(r)>n?$X(e,t-1,n):r}function QX(e,t,n=1/0,r=1/0,i=kKt()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=vKt(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 QX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=vj(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]=QX(p,h,c-1,r,i),d++}return o(t),l}function vKt(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(IO(t))return Ej(t);if(AX(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${wO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=AKt(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function AKt(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function RKt(e){return~-encodeURI(e).split(/%..|./).length}function wKt(e){return RKt(JSON.stringify(e))}function kKt(){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(()=>{Va();$d();kA()});function Oc(e,t=[]){return[e,t]}function t7(e,t){let[n,r]=e;return[n,[...r,t]]}function FO(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 n7(e,t){return FO(e,(n,r)=>t.includes(r))}function e7(e){let t=my(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function jO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[e7(r),s]:r.push(typeof s=="string"?e7(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(sf(a))}i(c)}}return typeof r=="string"?r:IKt(r)}function IKt(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 r7(e){return[{type:"span"},e]}function i7(e){let t=typeof e.data=="string"?e7(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function xKt(e){return e in sMe}function Bj(e){return xKt(e)?sMe[e]:e}function Gj(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function s7(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:il(r)},...i&&{trace:i}}}var sMe,Em=v(()=>{Hl();ym();qj();za();sMe={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 OKt(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 oMe(e,t,n,r){let i=Gj(n),s={sent_at:new Date().toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:il(t)}},o="aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()];return Oc(s,[o])}function aMe(e,t,n,r){let i=Gj(n),s=e.type&&e.type!=="replay_event"?e.type:"event";OKt(e,n?.sdk);let o=s7(e,i,r,t);return delete e.sdkProcessingMetadata,Oc(o,[[{type:s},e]])}function cMe(e,t){function n(p){return!!p.trace_id&&!!p.public_key}let r=Ns(e[0]),i=t?.getDsn(),s=t?.getOptions().tunnel,o={sent_at:new Date().toISOString(),...n(r)&&{trace:r},...!!s&&i&&{dsn:il(i)}},{beforeSendSpan:a,ignoreSpans:c}=t?.getOptions()||{},u=c?.length?e.filter(p=>!UO(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||(DO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(r7(h))}return Oc(o,f)}var o7=v(()=>{Sm();ym();Em();JX();xc()});function HO(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:r}=vt(e),{spanId:i}=e.spanContext(),s=rf(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}`)}Y.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 qO(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}`;Y.log(o)}var zj=v(()=>{Ni();br();xc()});function Nb(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[qX],s=r[BX];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var a7=v(()=>{Lo()});function lMe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function dMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function NKt(e){return e instanceof GA&&e.isStandaloneSpan()}function PKt(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 uMe,GA,fMe=v(()=>{mo();Ni();o7();Lo();br();Ry();xc();vy();Sm();zj();a7();jA();uMe=1e3,GA=class{constructor(t={}){this._traceId=t.traceId||Wa(),this._spanId=t.spanId||Ka(),this._startTime=t.startTimestamp||Ty(),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?Lj:Dj}}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=au(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=au(t),qO(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:Ob(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[At],profile_id:this._attributes[UA],exclusive_time:this._attributes[FA],measurements:Nb(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:xb(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Y.log("[Tracing] Adding an event to span:",t);let i=lMe(n)?n:r||Ty(),s=lMe(n)?{}:n||{},o={name:t,time:au(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?PKt(cMe([this],t)):(Fe&&Y.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&&(nf(this).scope||Un()).captureEvent(r)}_convertSpanToTransaction(){if(!dMe(vt(this)))return;this._name||(Fe&&Y.warn("Transaction has no name, falling back to ``."),this._name="");let{scope:t,isolationScope:n}=nf(this),r=t?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let s=Fj(this).filter(l=>l!==this&&!NKt(l)).map(l=>vt(l)).filter(dMe),o=this._attributes[Wi];delete this._attributes[Gl],s.forEach(l=>{delete l.data[Gl]});let a={contexts:{trace:JCe(this)},spans:s.length>uMe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,uMe):s,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:t,capturedSpanIsolationScope:n,dynamicSamplingContext:Ns(this)},request:r,...o&&{transaction_info:{source:o}}},c=Nb(this._events);return c&&Object.keys(c).length&&(Fe&&Y.log("[Measurements] Adding measurements to transaction event",JSON.stringify(c,void 0,2)),a.measurements=c),a}}});function of(e,t,n=()=>{},r=()=>{}){let i;try{i=e()}catch(s){throw t(s),n(),s}return CKt(i,t,n,r)}function CKt(e,t,n,r){return ia(e)?Ij(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var Vj=v(()=>{LX();Va()});function BO(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=sl(i);if(s===void 0)return Fe&&Y.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&&Y.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{Ni();br();LO();HA()});function af(e,t){let n=GO();if(n.startSpan)return n.startSpan(e,t);let r=l7(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Za(a,()=>hMe(s)(()=>{let u=Un(),l=d7(u,s),f=e.onlyIfParent&&!l?new Oy:u7({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return Ab(u,f),of(()=>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=GO();if(n.startSpanManual)return n.startSpanManual(e,t);let r=l7(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Za(a,()=>hMe(s)(()=>{let u=Un(),l=d7(u,s),f=e.onlyIfParent&&!l?new Oy:u7({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return Ab(u,f),of(()=>t(f,()=>f.end()),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})})}))}function Kj(e){let t=GO();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=l7(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=d7(o,i);return e.onlyIfParent&&!a?new Oy:u7({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function zA(e,t){let n=GO();return n.withActiveSpan?n.withActiveSpan(e,t):Za(r=>(Ab(r,e||void 0),t(r)))}function VA(e){let t=GO();return t.suppressTracing?t.suppressTracing(e):Za(n=>{n.setSDKProcessingMetadata({[Wj]:!0});let r=e();return n.setSDKProcessingMetadata({[Wj]:void 0}),r})}function u7({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!Os()){let o=new Oy;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...Ns(o)};Hj(o,a)}return o}let i=vn(),s;if(e&&!n)s=MKt(e,r,t),qA(e,s);else if(e){let o=Ns(e),{traceId:a,spanId:c}=e.spanContext(),u=rf(e);s=pMe({traceId:a,parentSpanId:c,...t},r,u),Hj(s,o)}else{let{traceId:o,dsc:a,parentSpanId:c,sampled:u}={...i.getPropagationContext(),...r.getPropagationContext()};s=pMe({traceId:o,parentSpanId:c,...t},r,u),a&&Hj(s,a)}return HO(s),NO(s,r,i),s}function l7(e){let n={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){let r={...n};return r.startTimestamp=au(e.startTime),delete r.startTime,r}return n}function GO(){let e=Ic();return ef(e)}function pMe(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[Wj]?[!1]:BO(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:sl(u.dsc?.sample_rate)},u.sampleRand),p=new GA({...e,attributes:{[Wi]:"custom",[tf]:d!==void 0&&f?d:void 0,...c},sampled:l});return!l&&r&&(Fe&&Y.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 MKt(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[Wj]?!1:rf(e),o=s?new GA({...n,parentSpanId:r,traceId:i,sampled:s}):new Oy({traceId:i});qA(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function d7(e,t){if(t)return t;if(t===null)return;let n=Rb(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function hMe(e){return e!==void 0?t=>zA(e,t):t=>t()}var Wj,Ny=v(()=>{LA();Hl();mo();Ni();Lo();br();Vj();LO();HA();kj();xc();Sm();zj();c7();iMe();fMe();jA();Wj="__SENTRY_SUPPRESS_TRACING__"});function bm(e){return new Zj(t=>{t(e)})}function WA(e){return new Zj((t,n)=>{n(e)})}var f7,mMe,gMe,Zj,KA=v(()=>{Va();f7=0,mMe=1,gMe=2;Zj=class e{constructor(t){this._state=f7,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===f7)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===mMe&&n[1](this._value),this._state===gMe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===f7){if(ia(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(mMe,s)},i=s=>{n(gMe,s)};try{t(r,i)}catch(s){i(s)}}}});function yMe(e,t,n,r=0){try{let i=p7(t,n,e,r);return ia(i)?i:bm(i)}catch(i){return WA(i)}}function p7(e,t,n,r){let i=n[r];if(!e||!i)return e;let s=i({...e},t);return Fe&&s===null&&Y.log(`Event processor "${i.id||"?"}" dropped event`),ia(s)?s.then(o=>p7(o,t,n,r+1)):p7(s,t,n,r+1)}var SMe=v(()=>{Ni();br();Va();KA()});function _Me(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(Py&&r.length===EMe&&i.length===bMe)return Py;EMe=r.length,bMe=i.length,Py={},Pb||(Pb={});let s=(o,a)=>{for(let c of o){let u=a[c],l=Pb?.[c];if(l&&Py&&u)Py[l[0]]=u,Pb&&(Pb[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&&Py&&Pb){Py[h]=u,Pb[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),Py}var Pb,EMe,bMe,Py,TMe=v(()=>{za()});function AMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;DKt(e,t),r&&FKt(e,r),jKt(e,n),LKt(e,i),UKt(e,s)}function vMe(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;zO(e,"extra",n),zO(e,"tags",r),zO(e,"attributes",i),zO(e,"user",s),zO(e,"contexts",o),e.sdkProcessingMetadata=Ay(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 zO(e,t,n){e[t]=Ay(e[t],n,1)}function Yj(e,t){let n=xj().getScopeData();return e&&vMe(n,e.getScopeData()),t&&vMe(n,t.getScopeData()),n}function DKt(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 LKt(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function UKt(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function FKt(e,t){e.contexts={trace:xy(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Ns(t),...e.sdkProcessingMetadata};let n=cs(t),r=vt(n).description;r&&!e.transaction&&e.type==="transaction"&&(e.transaction=r)}function jKt(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 h7=v(()=>{mo();Sm();wj();xc()});function RMe(e,t,n,r,i,s){let{normalizeDepth:o=3,normalizeMaxBreadth:a=1e3}=e,c={...t,event_id:t.event_id||n.event_id||ho(),timestamp:t.timestamp||pm()},u=n.integrations||e.integrations.map(g=>g.name);HKt(c,e),GKt(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&qKt(c,e.stackParser);let l=VKt(r,n.captureContext);n.mechanism&&CA(c,n.mechanism);let d=i?i.getEventProcessors():[],f=Yj(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),AMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?bm(c):yMe(h,c,n)).then(g=>(g&&BKt(g),typeof o=="number"&&o>0?zKt(g,o,a):g))}function HKt(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=Sy(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=Sy(a.value,s))})}function qKt(e,t){let n=_Me(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function BKt(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 GKt(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function zKt(e,t,n){if(!e)return null;let r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(i=>({...i,...i.data&&{data:sf(i.data,t,n)}}))},...e.user&&{user:sf(e.user,t,n)},...e.contexts&&{contexts:sf(e.contexts,t,n)},...e.extra&&{extra:sf(e.extra,t,n)}};return e.contexts?.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=sf(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(i=>({...i,...i.data&&{data:sf(i.data,t,n)}}))),e.contexts?.flags&&r.contexts&&(r.contexts.flags=sf(e.contexts.flags,3,n)),r}function VKt(e,t){if(!t)return e;let n=e?e.clone():new ou;return n.update(t),n}function wMe(e){if(e)return WKt(e)?{captureContext:e}:ZKt(e)?{captureContext:e}:e}function WKt(e){return e instanceof ou||typeof e=="function"}function ZKt(e){return Object.keys(e).some(t=>KKt.includes(t))}var KKt,m7=v(()=>{jj();SMe();xO();TMe();Dp();qj();h7();by();KA();vy();KKt=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Un().captureException(e,wMe(t))}function Jj(e,t){return Un().captureEvent(e,t)}async function ZA(e){let t=ct();return t?t.flush(e):(Fe&&Y.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function Xj(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function Qj(e){let t=vn(),{user:n}=Yj(t,Un()),{userAgent:r}=qt.navigator||{},i=NCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&hm(s,{status:"exited"}),VO(),t.setSession(i),i}function VO(){let e=vn(),n=Un().getSession()||e.getSession();n&&PCe(n),YKt(),e.setSession()}function YKt(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var ol=v(()=>{mo();Ni();Rj();br();m7();h7();za()});function XKt(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function QKt(e){return`${XKt(e)}${e.projectId}/envelope/`}function $Kt(e,t){let n={sentry_version:JKt};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function kMe(e,t,n){return t||`${QKt(e)}?${$Kt(e,n)}`}var JKt,IMe=v(()=>{JKt="7"});function e3t(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 y7(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 e3t(r)}function xMe(e,t){let n={};return t.forEach(r=>{r&&E7(e,r,n)}),n}function S7(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function E7(e,t,n){if(n[t.name]){Fe&&Y.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,!g7.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),g7.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&&Y.log(`Integration installed: ${t.name}`)}var g7,b7=v(()=>{Ni();br();g7=[]});function OMe(e,t){return t?Za(t,()=>{let n=zl(),r=n?xy(n):wb(t);return[n?Ns(n):Up(e,t),r]}):[void 0,void 0]}var NMe=v(()=>{mo();Sm();xc()});function t3t(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function PMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=il(r)),Oc(i,[t3t(e)])}var CMe=v(()=>{ym();Em()});function YA(e,t){let n=t??n3t(e)??[];if(n.length===0)return;let r=e.getOptions(),i=PMe(n,r._metadata,r.tunnel,e.getDsn());MMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function n3t(e){return MMe().get(e)}function MMe(){return Qd("clientToLogBufferMap",()=>new WeakMap)}var _7=v(()=>{Hl();CMe()});function r3t(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function DMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=il(r)),Oc(i,[r3t(e)])}var LMe=v(()=>{ym();Em()});function UMe(e,t){let n=t??i3t(e)??[];if(n.length===0)return;let r=e.getOptions(),i=DMe(n,r._metadata,r.tunnel,e.getDsn());FMe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function i3t(e){return FMe().get(e)}function FMe(){return Qd("clientToMetricBufferMap",()=>new WeakMap)}var jMe=v(()=>{Hl();LMe()});function $j(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var T7=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 bm(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>$j(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var WO,eH=v(()=>{KA();T7();WO=Symbol.for("SentryBufferFullError")});function o3t(e,t=ql()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?s3t:r-t}function a3t(e,t){return e[t]||e.all||0}function HMe(e,t,n=ql()){return a3t(e,t)>n}function qMe(e,{statusCode:t,headers:n},r=ql()){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+o3t(o,r):t===429&&(i.all=r+60*1e3);return i}var s3t,BMe=v(()=>{yy();s3t=60*1e3});function ZO(e,t,n=JA(e.bufferSize||KO)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(FO(o,(d,f)=>{let p=Bj(f);HMe(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(n7(c,["client_report"])){Fe&&Y.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}FO(c,(f,p)=>{e.recordDroppedEvent(d,Bj(p))})},l=()=>t({body:jO(c)}).then(d=>d.statusCode===413?(Fe&&Y.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)&&Y.warn(`Sentry responded with status code ${d.statusCode} to sent event.`),r=qMe(r,d),d),d=>{throw u("network_error"),Fe&&Y.error("Encountered error running transport request:",d),d});return n.add(l).then(d=>d,d=>{if(d===WO)return Fe&&Y.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var KO,tH=v(()=>{Ni();br();Em();eH();BMe();KO=64});function GMe(e,t,n){let r=[{type:"client_report"},{timestamp:n||pm(),discarded_events:e}];return Oc(t?{dsn:t}:{},[r])}var zMe=v(()=>{Em();vy()});function nH(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 v7=v(()=>{});function VMe(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 WMe(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 KMe=v(()=>{Lo()});function rH(e){return{message:e,[tDe]:!0}}function A7(e){return{message:e,[nDe]:!0}}function JMe(e){return!!e&&typeof e=="object"&&tDe in e}function XMe(e){return!!e&&typeof e=="object"&&nDe in e}function QMe(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=$j(setTimeout(()=>{i(e)},c3t)))}),e.on("flush",()=>{i(e)})}function $Me(e){return e==="replay_event"?"replay":e||"error"}function u3t(e,t){let n=`${t} must return \`null\` or a valid event.`;if(ia(e))return e.then(r=>{if(!dm(r)&&r!==null)throw rH(n);return r},r=>{throw rH(`${t} rejected with ${r}`)});if(!dm(e)&&e!==null)throw rH(n);return e}function l3t(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(R7(c)&&i)return i(c,r);if(rDe(c)){if(o||a){let u=VMe(c);if(a?.length&&UO(u,a))return null;if(o){let l=o(u);l?c=Ay(n,WMe(l)):DO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&UO(p,a)){nMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(DO(),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 R7(e){return e.type===void 0}function rDe(e){return e.type==="transaction"}function d3t(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+iDe(e.attributes)}function f3t(e){let t=0;return e.message&&(t+=e.message.length*2),t+iDe(e.attributes)}function iDe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*eDe(n[0]):kO(n)?t+=eDe(n):t+=100}),t}function eDe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var ZMe,YMe,tDe,nDe,c3t,iH,sDe=v(()=>{IMe();jj();mo();Ni();o7();b7();_7();jMe();Rj();Sm();tH();zMe();br();ym();Em();v7();Va();wj();Dp();HA();m7();eH();yy();JX();xc();KA();T7();KMe();ZMe="Not capturing exception because it's already been captured.",YMe="Discarded session because of missing or non-string release",tDe=Symbol.for("SentryInternalError"),nDe=Symbol.for("SentryDoNotSendEventError"),c3t=5e3;iH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=JA(t.transportOptions?.bufferSize??KO),t.dsn?this._dsn=WCe(t.dsn):Fe&&Y.warn("No DSN provided, client will not send events."),this._dsn){let r=kMe(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&&QMe(this,"afterCaptureLog","flushLogs",f3t,YA),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&QMe(this,"afterCaptureMetric","flushMetrics",d3t,UMe)}captureException(t,n,r){let i=ho();if(Aj(t))return Fe&&Y.log(ZMe),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:ho(),...r},o=NA(t)?t:String(t),a=kO(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=ho();if(n?.originalException&&Aj(n.originalException))return Fe&&Y.log(ZMe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=$Me(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){YA(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];E7(this,t,this._integrations),n||S7(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=aMe(t,this._dsn,this._options._metadata,this._options.tunnel);for(let i of n.attachments||[])r=t7(r,i7(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&&Y.warn(YMe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Y.warn(YMe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=oMe(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&&Y.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&&Y.error("Error while sending envelope:",n),{}}return Fe&&Y.error("Transport disabled"),{}}dispose(){}_setupIntegrations(){let{integrations:t}=this._options;this._integrations=xMe(this,t),S7(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),RMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...wb(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&&R7(t)&&Y.log(`Captured error event \`${nH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&(XMe(s)?Y.log(s.message):JMe(s)?Y.warn(s.message):Y.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=rDe(t),c=R7(t),l=`before send for type \`${t.type||"error"}\``,d=typeof o>"u"?void 0:sl(o);if(c&&typeof d=="number"&&Do()>d)return this.recordDroppedEvent("sample_rate","error"),WA(A7(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=$Me(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),A7("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=l3t(this,s,p,n);return u3t(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 A7(`${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 XMe(p)||JMe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),rH(`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===WO&&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&&Y.log("Flushing outcomes...");let t=this._clearOutcomes();if(t.length===0){Fe&&Y.log("No outcomes to send");return}if(!this._dsn){Fe&&Y.log("No dsn provided, will not send outcomes");return}Fe&&Y.log("Sending outcomes:",t);let n=GMe(t,this._options.tunnel&&il(this._dsn));this.sendEnvelope(n)}}});function oDe(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=il(i)),t&&(s.trace=t);let o=p3t(e);return Oc(s,[o])}function p3t(e){return[{type:"check_in"},e]}var aDe=v(()=>{ym();Em()});function cDe(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 uDe=v(()=>{});function lDe(e,t){return e(t.stack||"",1)}function h3t(e){return Cp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function m3t(e){return h3t(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function w7(e,t){let n={type:t.name||t.constructor.name,value:m3t(t)},r=lDe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function g3t(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function y3t(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=kX(e);if(bX(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=S3t(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function S3t(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function E3t(e,t,n,r){if(Cp(n))return[n,void 0];if(t.synthetic=!0,dm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:$X(n,s)},a=g3t(n);if(a)return[a,o];let c=y3t(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 dDe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=E3t(e,s,n,r),c={exception:{values:[w7(t,o)]}};return a&&(c.extra=a),PX(c,void 0,void 0),CA(c,s),{...c,event_id:r?.event_id}}function fDe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=lDe(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},CA(s,{synthetic:!0}))}if(NA(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 k7=v(()=>{Va();Dp();qj();$d()});function pDe(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 YO,hDe=v(()=>{aDe();sDe();mo();Ni();eMe();br();Dp();tH();uDe();k7();eH();KA();NMe();YO=class extends iH{constructor(t){$Ce(),cDe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=dDe(this,this._options.stackParser,t,n);return r.level="error",bm(r)}eventFromMessage(t,n="info",r){return bm(fDe(this._options.stackParser,t,n,r,this._options.attachStacktrace))}captureException(t,n,r){return pDe(n),super.captureException(t,n,r)}captureEvent(t,n,r){return!t.type&&t.exception?.values&&t.exception.values.length>0&&pDe(n),super.captureEvent(t,n,r)}captureCheckIn(t,n,r){let i="checkInId"in t&&t.checkInId?t.checkInId:ho();if(!this._isEnabled())return Fe&&Y.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]=OMe(this,r);d&&(u.contexts={trace:d});let f=oDe(u,l,this.getSdkMetadata(),c,this.getDsn());return Fe&&Y.log("Sending checkin:",t.monitorSlug,t.status),this.sendEnvelope(f),i}dispose(){Fe&&Y.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(KO)}_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 x7(e){e.forEach(t=>{I7.add(t),Fe&&Y.log(`AI provider "${t}" wrapping will be skipped`)})}function Cb(e){return I7.has(e)}function O7(){I7.clear(),Fe&&Y.log("Cleared AI provider skip registrations")}var I7,mDe=v(()=>{Ni();br();I7=new Set});function XA(e,t){let n=String(e).toLowerCase();return b3t.has(n)?!1:_3t.has(n)?!0:t?.strict?null:!!e}var b3t,_3t,gDe=v(()=>{b3t=new Set(["false","f","n","no","off","0"]),_3t=new Set(["true","t","y","yes","on","1"])});function N7(e){return"isRelative"in e}function JO(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?T3t: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 yDe(e){if(N7(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 v3t(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?yDe(e):e.pathname:"/");return`${i} ${s}`}function P7(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[WX]=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")),N7(e)||(s[wy]=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))),[v3t(e,t,r,i),s]}function Cy(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 _m(e){return e.split(/[?#]/,1)[0]}function My(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 T3t,SDe=v(()=>{Lo();T3t="thismessage:/"});function Mb(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:Pn})),i.version=Pn)}var EDe=v(()=>{gj()});function $A(e={}){let t=e.client||ct();if(!Xj()||!t)return{};let n=Ic(),r=ef(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Un(),s=e.span||zl();if(!s&&jX())return{};let o=s?Uj(s):A3t(i),a=s?Ns(s):Up(t,i),c=kb(a);if(!Pj.test(o))return Y.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let l={"sentry-trace":o,baggage:c};return e.propagateTraceparent&&(l.traceparent=s?XCe(s):R3t(i)),l}function A3t(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return ky(t,r,n)}function R3t(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Iy(t,r,n)}var bDe=v(()=>{LA();Hl();mo();ol();br();xc();Sm();PO();Cj()});function Db(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Fe&&!r&&Y.log(_De,e),r;let i=Ey(e,t);return n?.set(e,i),Fe&&!i&&Y.log(_De,e),i}var _De,TDe=v(()=>{Ni();br();by();_De="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function C7(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 vDe=v(()=>{});function kDe(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function XO(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=w3t({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:IDe(o),headers:kDe(t),cookies:u,data:c}}function w3t({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):"",y=h.toLowerCase();wDe(r,o,y,m,t,n)}}else wDe(r,o,"",s,t,n)})}catch{}return r}function RDe(e){return e.replace(/-/g,"_")}function wDe(e,t,n,r,i,s){let o=I3t(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${RDe(t)}${n?`.${RDe(n)}`:""}`;e[a]=o}function I3t(e,t,n){if(n?ADe.some(i=>e.includes(i)):[...k3t,...ADe].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 IDe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var ADe,k3t,xDe=v(()=>{ADe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],k3t=["x-forwarded-","-user"]});function Vl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=x3t}=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 x3t,M7=v(()=>{mo();br();vy();x3t=100});var ODe,O3t,NDe,N3t,oH,PDe=v(()=>{mo();$d();O3t="FunctionToString",NDe=new WeakMap,N3t=(()=>({name:O3t,setupOnce(){ODe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=wX(this),n=NDe.has(ct())&&t!==void 0?t:this;return ODe.apply(n,e)}}catch{}},setup(e){NDe.set(e,!0)}})),oH=N3t});function CDe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:P3t],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function M3t(e,t){if(e.type){if(e.type==="transaction"&&L3t(e,t.ignoreTransactions))return Fe&&Y.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${_y(e)}`),!0}else{if(D3t(e,t.ignoreErrors))return Fe&&Y.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${_y(e)}`),!0;if(H3t(e))return Fe&&Y.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${_y(e)}`),!0;if(U3t(e,t.denyUrls))return Fe&&Y.warn(`Event dropped due to being matched by \`denyUrls\` option. -Event: ${_y(e)}. -Url: ${aH(e)}`),!0;if(!F3t(e,t.allowUrls))return Fe&&Y.warn(`Event dropped due to not being matched by \`allowUrls\` option. -Event: ${_y(e)}. -Url: ${aH(e)}`),!0}return!1}function D3t(e,t){return t?.length?nH(e).some(n=>Ey(n,t)):!1}function L3t(e,t){if(!t?.length)return!1;let n=e.transaction;return n?Ey(n,t):!1}function U3t(e,t){if(!t?.length)return!1;let n=aH(e);return n?Ey(n,t):!1}function F3t(e,t){if(!t?.length)return!0;let n=aH(e);return n?Ey(n,t):!0}function j3t(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 aH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?j3t(n):null}catch{return Fe&&Y.error(`Cannot extract url for event ${_y(e)}`),null}}function H3t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var P3t,C3t,D7,cH,MDe=v(()=>{Ni();br();v7();Dp();by();P3t=[/^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$/],C3t="EventFilters",D7=(e={})=>{let t;return{name:C3t,setup(n){let r=n.getOptions();t=CDe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=CDe(e,s)}return M3t(n,t)?null:n}}},cH=((e={})=>({...D7(e),name:"InboundFilters"}))});function UDe(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=L7(e,t,r,s.originalException,n,i.exception.values,o,0))}function L7(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Mp(r[i],Error)){DDe(o,a,r);let u=e(t,r[i]),l=c.length;LDe(u,i,l,a),c=L7(e,t,n,r[i],i,[u,...c],u,l)}return FDe(r)&&r.errors.forEach((u,l)=>{if(Mp(u,Error)){DDe(o,a,r);let d=e(t,u),f=c.length;LDe(d,`errors[${l}]`,f,a),c=L7(e,t,n,u,i,[d,...c],d,f)}}),c}function FDe(e){return Array.isArray(e.errors)}function DDe(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...FDe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function LDe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var jDe=v(()=>{Va()});var q3t,B3t,G3t,z3t,uH,HDe=v(()=>{jDe();k7();q3t="cause",B3t=5,G3t="LinkedErrors",z3t=((e={})=>{let t=e.limit||B3t,n=e.key||q3t;return{name:G3t,preprocessEvent(r,i,s){let o=s.getOptions();UDe(w7,o.stackParser,n,t,r,i)}}}),uH=z3t});function qDe(e){let t={},n=0;for(;n{});function GDe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return U7.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?V3t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&W3t(s))||null}function V3t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function W3t(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 U7,zDe=v(()=>{U7=["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 J3t(e,t,n,r){if(e.request={...e.request,...X3t(t,r)},r.ip){let i=t.headers&&GDe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function X3t(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||U7.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 K3t,Z3t,Y3t,lH,VDe=v(()=>{BDe();zDe();K3t={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},Z3t="RequestData",Y3t=((e={})=>{let t={...K3t,...e.include};return{name:Z3t,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&J3t(n,o,{ipAddress:a},c),n}}}),lH=Y3t});function WDe(e){let t="console";IA(t,e),xA(t,Q3t)}function Q3t(){"console"in qt&&RO.forEach(function(e){e in qt.console&&RX(qt.console,e,function(t){return wA[e]=t,function(...n){OA("console",{args:n,level:e}),wA[e]?.apply(qt.console,n)}})})}var KDe=v(()=>{br();$d();za();_j()});function ZDe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var YDe=v(()=>{});function e4t(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=$3t.exec(t);return n?n.slice(1):[]}function F7(e){let t=e4t(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var $3t,JDe=v(()=>{$3t=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function q7(e,t){return!e||typeof e!="function"?(Fe&&Y.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):H7(e,{requireParentSpan:!0,...t})}function H7(e,t,n){if(e[j7])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&&QDe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?r4t(o,i,r,t):s==="begin"||s==="reserve"?i4t(o,i,r,t):o}});return n?r[dH]=n:u4t(e,r),e[j7]=!0,r[j7]=!0,r}function r4t(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&QDe(s,n,r),s}}function i4t(e,t,n,r){return function(...i){let s=n[dH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>H7(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=H7(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function QDe(e,t,n){if(e.handle?.__sentryWrapped)return;e[n4t]=!0;let r=e.handle,i=async function(...s){if(!s4t(n))return r.apply(this,s);let o=o4t(e.strings),a=a4t(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[dH]:void 0;if(c4t(c,u),n.requestHook)try{n.requestHook(c,a,u)}catch(d){c.setAttribute("sentry.hook.error","requestHook failed"),Fe&&Y.error("Error in requestHook for PostgresJs instrumentation:",d)}let l=this;l.resolve=new Proxy(l.resolve,{apply:(d,f,p)=>{try{XDe(c,a,p?.[0]?.command),c.end()}catch(h){Fe&&Y.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"),XDe(c,a),c.end()}catch(h){Fe&&Y.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 s4t(e){return zl()!==void 0||!e.requireParentSpan}function o4t(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function a4t(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(/(?{Ni();Lo();br();xc();Ny();t4t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,dH=Symbol("sentryPostgresConnectionContext"),j7=Symbol.for("sentry.instrumented.postgresjs"),n4t=Symbol.for("sentry.query.from.instrumented.sql")});function d4t(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:ZDe(e),message:eLe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${eLe(r)}`:"Assertion failed",n.data.arguments=r}else return;Vl(n,{input:t,level:e})}function eLe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):xX(e," ")}var l4t,fH,tLe=v(()=>{M7();mo();KDe();br();YDe();by();za();l4t="Console",fH=(e={})=>{let t=new Set(e.levels||RO);return{name:l4t,setup(n){WDe(({args:r,level:i})=>{ct()!==n||!t.has(i)||d4t(i,r)})}}}});var f4t,p4t,B7,nLe=v(()=>{mo();Lo();f4t="ConversationId",p4t=(()=>({name:f4t,setup(e){e.on("spanStart",t=>{let n=Un().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(KX,i)})}})),B7=p4t});function pH(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 rLe=v(()=>{mo()});var iLe,Dy,us,eR,Ly,tR,Uy,nR,Fy,hH,sLe,oLe,cu,go,Wl,aLe,di,Ps,Nc,sa,Pc,oa,cLe,al,zs,Fp,Lb,Fo,G7,uLe,QO,lLe,dLe,z7,jy,mH,fLe,pLe,hLe,mLe,rR,gLe,yLe,SLe,ELe,Ub,V7,W7,gH,yH,bLe,K7,Z7,Y7,_Le,TLe,J7,Ya=v(()=>{iLe="gen_ai.prompt",Dy="gen_ai.system",us="gen_ai.request.model",eR="gen_ai.request.stream",Ly="gen_ai.request.temperature",tR="gen_ai.request.max_tokens",Uy="gen_ai.request.frequency_penalty",nR="gen_ai.request.presence_penalty",Fy="gen_ai.request.top_p",hH="gen_ai.request.top_k",sLe="gen_ai.request.encoding_format",oLe="gen_ai.request.dimensions",cu="gen_ai.response.finish_reasons",go="gen_ai.response.model",Wl="gen_ai.response.id",aLe="gen_ai.response.stop_reason",di="gen_ai.usage.input_tokens",Ps="gen_ai.usage.output_tokens",Nc="gen_ai.usage.total_tokens",sa="gen_ai.operation.name",Pc="sentry.sdk_meta.gen_ai.input.messages.original_length",oa="gen_ai.input.messages",cLe="gen_ai.output.messages",al="gen_ai.system_instructions",zs="gen_ai.response.text",Fp="gen_ai.request.available_tools",Lb="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",G7="gen_ai.agent.name",uLe="gen_ai.pipeline.name",QO="gen_ai.conversation.id",lLe="gen_ai.usage.cache_creation_input_tokens",dLe="gen_ai.usage.cache_read_input_tokens",z7="gen_ai.usage.input_tokens.cache_write",jy="gen_ai.usage.input_tokens.cached",mH="gen_ai.invoke_agent",fLe="gen_ai.generate_text",pLe="gen_ai.stream_text",hLe="gen_ai.generate_object",mLe="gen_ai.stream_object",rR="gen_ai.embeddings.input",gLe="gen_ai.embeddings",yLe="gen_ai.embeddings",SLe="gen_ai.rerank",ELe="gen_ai.execute_tool",Ub="gen_ai.tool.name",V7="gen_ai.tool.call.id",W7="gen_ai.tool.type",gH="gen_ai.tool.input",yH="gen_ai.tool.output",bLe="gen_ai.tool.description",K7="openai.response.id",Z7="openai.response.model",Y7="openai.response.timestamp",_Le="openai.usage.completion_tokens",TLe="openai.usage.prompt_tokens",J7="anthropic.response.timestamp"});var $O,X7,Q7,vLe,ALe,RLe,$7=v(()=>{$O=new Map,X7=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),Q7=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),vLe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),ALe=new Set(["ai.rerank.doRerank"]),RLe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function Hy(e){return!e||typeof e!="object"?!1:m4t(e)||kLe(e)||h4t(e)||ILe(e)||xLe(e)||g4t(e)||y4t(e)||S4t(e)||E4t(e)||b4t(e)||_4t(e)||T4t(e)}function h4t(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):wLe(e):!1}function wLe(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 m4t(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&Hy(e.source)}function kLe(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function ILe(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 xLe(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 g4t(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function y4t(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 S4t(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function E4t(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function b4t(e){return"b64_json"in e}function _4t(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function T4t(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function Fb(e){let t={...e};Hy(t.source)&&(t.source=Fb(t.source)),kLe(e)&&(t.inlineData={...e.inlineData,data:eN}),wLe(e)&&(t.image_url={...e.image_url,url:eN}),ILe(e)&&(t.input_audio={...e.input_audio,data:eN}),xLe(e)&&(t.file={...e.file,file_data:eN});for(let n of v4t)typeof t[n]=="string"&&(t[n]=eN);return t}var eN,v4t,eQ=v(()=>{eN="[Blob substitute]",v4t=["image_url","data","content","b64_json","result","uri","image"]});function EH(e,t){if(SH(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);SH(o)<=t?(i=o,n=s+1):r=s-1}return i}function A4t(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function OLe(e,t){return typeof e=="string"?t:{...e,text:t}}function R4t(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function PLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function CLe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function w4t(e,t){let n={...e,content:""},r=nQ(n),i=t-r;if(i<=0)return[];let s=EH(e.content,i);return[{...e,content:s}]}function k4t(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 I4t(e,t){let{key:n,items:r}=k4t(e);if(n===null||r.length===0)return[];let i=r.map(c=>OLe(c,"")),s=nQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=A4t(c),l=SH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=EH(u,o);d&&a.push(OLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function x4t(e,t){if(!e)return[];if(typeof e=="string"){let n=EH(e,t);return n?[n]:[]}return typeof e!="object"?[]:R4t(e)?w4t(e,t):PLe(e)||CLe(e)?I4t(e,t):[]}function tQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(PLe(n)?r={...n,content:tQ(n.content)}:"content"in n&&Hy(n.content)&&(r={...n,content:Fb(n.content)}),CLe(n)&&(r={...r??n,parts:tQ(n.parts)}),Hy(r)?r=Fb(r):Hy(n)&&(r=Fb(n))),r??n})}function O4t(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=tQ([r]),s=i[0];return nQ(s)<=n?i:x4t(s,n)}function qy(e){return O4t(e,NLe)}function MLe(e){return EH(e,NLe)}var NLe,SH,nQ,tN=v(()=>{eQ();NLe=2e4,SH=e=>new TextEncoder().encode(e).length,nQ=e=>SH(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 nN(e,t,n,r,i){if(t!==void 0&&e.setAttributes({[di]:t}),n!==void 0&&e.setAttributes({[Ps]: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 jb(e){if(typeof e=="string")return MLe(e);if(Array.isArray(e)){let t=qy(e);return JSON.stringify(t)}return JSON.stringify(e)}function cl(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 N4t(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 ia(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 N4t(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var Hp=v(()=>{ol();mo();Va();Ya();tN()});var bH,DLe,_H,LLe,ULe,rQ,iQ,sQ,FLe,Hb,oR,rN,jLe,HLe,qLe,BLe,GLe,zLe,oQ,aQ,VLe,WLe,cQ=v(()=>{bH="operation.name",DLe="ai.operationId",_H="ai.prompt",LLe="ai.schema",ULe="ai.response.object",rQ="ai.values",iQ="ai.response.text",sQ="ai.response.toolCalls",FLe="ai.response.finishReason",Hb="ai.prompt.messages",oR="ai.prompt.tools",rN="ai.model.id",jLe="ai.response.providerMetadata",HLe="ai.usage.cachedInputTokens",qLe="ai.telemetry.functionId",BLe="ai.usage.completionTokens",GLe="ai.usage.promptTokens",zLe="ai.usage.tokens",oQ="ai.toolCall.name",aQ="ai.toolCall.id",VLe="ai.toolCall.args",WLe="ai.toolCall.result"});function ZLe(e,t){let n=e.parent_span_id;if(!n)return;let r=e.data[di],i=e.data[Ps];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 uQ(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[Ps]=n.outputTokens),(n.inputTokens>0||n.outputTokens>0)&&(e.data["gen_ai.usage.total_tokens"]=n.inputTokens+n.outputTokens))}function P4t(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 YLe(e,t){let n=P4t(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[Ub];if(typeof i=="string"){let s=n.get(i);s&&(r.data[bLe]=s)}}r.op==="gen_ai.invoke_agent"&&uQ(r,t)}}function lQ(e){return $O.get(e)}function dQ(e){$O.delete(e)}function JLe(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 KLe(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function C4t(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(...KLe(n)),s;if(Array.isArray(r))return s.push(...KLe(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function XLe(e,t){if(typeof t[_H]=="string"&&!t[oa]&&!t[Hb]){let n=t[_H],r=C4t(n);if(r.length){let{systemInstructions:i,filteredMessages:s}=cl(r);i&&e.setAttribute(al,i);let o=Array.isArray(s)?s.length:0,a=jb(s);e.setAttributes({[_H]:a,[oa]:a,[Pc]:o})}}else if(typeof t[Hb]=="string")try{let n=JSON.parse(t[Hb]);if(Array.isArray(n)){let{systemInstructions:r,filteredMessages:i}=cl(n);r&&e.setAttribute(al,r);let s=Array.isArray(i)?i.length:0,o=jb(i);e.setAttributes({[Hb]:o,[oa]:o,[Pc]:s})}}catch{}}function QLe(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return mH;case"ai.generateText.doGenerate":return fLe;case"ai.streamText.doStream":return pLe;case"ai.generateObject.doGenerate":return hLe;case"ai.streamObject.doStream":return mLe;case"ai.embed.doEmbed":return gLe;case"ai.embedMany.doEmbed":return yLe;case"ai.rerank.doRerank":return SLe;case"ai.toolCall":return ELe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var fQ=v(()=>{Ya();Hp();$7();cQ()});function M4t(e){return X7.has(e)?"invoke_agent":Q7.has(e)?"generate_content":vLe.has(e)?"embeddings":ALe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function D4t(e){let{data:t,description:n}=vt(e);if(n){if(t[oQ]&&t[aQ]&&n==="ai.toolCall"){H4t(e,t);return}!t[DLe]&&!n.startsWith("ai.")||q4t(e,n,t)}}function L4t(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)j4t(r),ZLe(r,t);YLe(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&uQ(n,t)}return e}function U4t(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 F4t(e){let t=e[iQ],n=e[sQ],r=e[FLe];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:U4t(r)};e[cLe]=JSON.stringify([s]),delete e[iQ]}}function j4t(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),aa(t,BLe,Ps),aa(t,GLe,di),aa(t,HLe,jy),aa(t,"ai.usage.inputTokens",di),aa(t,"ai.usage.outputTokens",Ps),aa(t,zLe,di),aa(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[jy]=="number"&&(t[di]=t[di]+t[jy]),typeof t[di]=="number"){let r=typeof t[Ps]=="number"?t[Ps]:0;t[Nc]=r+t[di]}if(t[oR]&&Array.isArray(t[oR])&&(t[oR]=JLe(t[oR])),t[bH]){let r=M4t(t[bH]);t[sa]=r,delete t[bH]}if(aa(t,Hb,oa),F4t(t),aa(t,ULe,"gen_ai.response.object"),aa(t,oR,"gen_ai.request.available_tools"),aa(t,VLe,gH),aa(t,WLe,yH),aa(t,LLe,"gen_ai.request.schema"),aa(t,rN,us),Array.isArray(t[rQ])){let r=t[rQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[rR]=r.length===1?r[0]:JSON.stringify(r)}B4t(t);for(let r of Object.keys(t))r.startsWith("ai.")&&aa(t,r,`vercel.${r}`)}}function aa(e,t,n){e[t]!=null&&(e[n]=e[t],delete e[t])}function H4t(e,t){e.setAttribute(At,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(sa,"execute_tool"),aa(t,oQ,Ub),aa(t,aQ,V7);let n=t[V7];typeof n=="string"&&$O.set(n,e.spanContext()),t[W7]||e.setAttribute(W7,"function");let r=t[Ub];r&&e.updateName(`execute_tool ${r}`)}function q4t(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),XLe(e,n),n[rN]&&!n[go]&&e.setAttribute(go,n[rN]),e.setAttribute("ai.streaming",t.includes("stream"));let s=QLe(t);if(s&&e.setAttribute(zt,s),X7.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[rN];if(o){let a=Q7.has(t)?"generate_content":RLe[t];a&&e.updateName(`${a} ${o}`)}}function TH(e){e.on("spanStart",D4t),e.addEventProcessor(Object.assign(L4t,{id:"VercelAiEventProcessor"}))}function B4t(e){let t=e[jLe];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(cf(e,jy,r.cachedPromptTokens),cf(e,"gen_ai.usage.output_tokens.reasoning",r.reasoningTokens),cf(e,"gen_ai.usage.output_tokens.prediction_accepted",r.acceptedPredictionTokens),cf(e,"gen_ai.usage.output_tokens.prediction_rejected",r.rejectedPredictionTokens),e["gen_ai.conversation.id"]||cf(e,"gen_ai.conversation.id",r.responseId)),n.anthropic){let i=n.anthropic.usage?.cache_read_input_tokens??n.anthropic.cacheReadInputTokens;cf(e,jy,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;cf(e,z7,s)}n.bedrock?.usage&&(cf(e,jy,n.bedrock.usage.cacheReadInputTokens),cf(e,z7,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(cf(e,jy,n.deepseek.promptCacheHitTokens),cf(e,"gen_ai.usage.input_tokens.cache_miss",n.deepseek.promptCacheMissTokens))}catch{}}function cf(e,t,n){n!=null&&(e[t]=n)}var $Le=v(()=>{Lo();xc();Ya();$7();fQ();cQ()});var By,e1e,G4t,t1e,vH=v(()=>{By="OpenAI",e1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},G4t=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],t1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...G4t]});function n1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function r1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function i1e(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 s1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function o1e(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith("response.")}function a1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion.chunk"}function c1e(e,t,n){if(AH(e,t.id,t.model,t.created),t.usage&&iN(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({[cu]: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 u1e(e,t,n){if(AH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[cu]:JSON.stringify([t.status])}),t.usage&&iN(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 l1e(e,t){e.setAttributes({[Z7]:t.model,[go]:t.model}),t.usage&&iN(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function d1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[K7]:n,[Wl]:n,[QO]:n}),r&&e.setAttributes({[Y7]:new Date(r*1e3).toISOString()})}function iN(e,t,n,r){t!==void 0&&e.setAttributes({[TLe]:t,[di]:t}),n!==void 0&&e.setAttributes({[_Le]:n,[Ps]:n}),r!==void 0&&e.setAttributes({[Nc]:r})}function AH(e,t,n,r){e.setAttributes({[K7]:t,[Wl]:t}),e.setAttributes({[Z7]:n,[go]:n}),e.setAttributes({[Y7]:new Date(r*1e3).toISOString()})}function z4t(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 f1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[Ly]=e.temperature),"top_p"in e&&(t[Fy]=e.top_p),"frequency_penalty"in e&&(t[Uy]=e.frequency_penalty),"presence_penalty"in e&&(t[nR]=e.presence_penalty),"stream"in e&&(t[eR]=e.stream),"encoding_format"in e&&(t[sLe]=e.encoding_format),"dimensions"in e&&(t[oLe]=e.dimensions);let n=z4t(e);return n&&(t[QO]=n),t}var pQ=v(()=>{Ya()});function V4t(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 W4t(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&&V4t(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function K4t(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(!t1e.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*p1e(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)a1e(i)?W4t(i,r,n):o1e(i)&&K4t(i,r,n,t),yield i}finally{AH(t,r.responseId,r.responseModel,r.responseTimestamp),iN(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[Lb]:!0}),r.finishReasons.length&&t.setAttributes({[cu]: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 h1e=v(()=>{ol();Ya();vH();pQ()});function Z4t(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&&Y.error("Failed to serialize OpenAI tools:",s);return}}function Y4t(e,t){let n={[Dy]:"openai",[sa]:t,[At]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=Z4t(r);i&&(n[Fp]=i),Object.assign(n,f1e(r))}else n[us]="unknown";return n}function J4t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(n1e(r)){if(c1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[zs]:JSON.stringify(i)})}}else r1e(r)?(u1e(e,r,n),n&&r.output_text&&e.setAttributes({[zs]:r.output_text})):i1e(r)?l1e(e,r):s1e(r)&&d1e(e,r)}function m1e(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}=cl(r);i&&e.setAttribute(al,i);let o=jb(s);e.setAttribute(oa,o),Array.isArray(s)?e.setAttribute(Pc,s.length):e.setAttribute(Pc,1)}function X4t(e,t,n,r,i){return function(...o){let a=n.operation,c=Y4t(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,y=Uo(f,g=>(m=e.apply(r,o),i.recordInputs&&l&&m1e(g,l,a),(async()=>{try{let E=await m;return p1e(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 sR(m,y,"auto.ai.openai")}let p,h=af(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&m1e(m,l,a),p.then(y=>(J4t(m,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),y})));return sR(p,h,"auto.ai.openai")}}function g1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=iR(t,String(i)),a=e1e[o];return typeof s=="function"&&a?X4t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?g1e(s,o,n):s}})}function RH(e,t){return g1e(e,"",jp(t))}var y1e=v(()=>{Ni();ol();Lo();br();Ny();Ya();Hp();vH();h1e();pQ()});var Gy,S1e,hQ=v(()=>{Gy="Anthropic_AI",S1e={"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 E1e(e,t){if(Array.isArray(t)&&t.length===0)return;let{systemInstructions:n,filteredMessages:r}=cl(t);n&&e.setAttributes({[al]:n});let i=Array.isArray(r)?r.length:1;e.setAttributes({[oa]:jb(r),[Pc]:i})}function mQ(e){return e&&Q4t[e]||"internal_error"}function b1e(e,t){t.error&&(e.setStatus({code:2,message:mQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function _1e(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 Q4t,gQ=v(()=>{ol();Ya();Hp();Q4t={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 $4t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:mQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function eZt(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 tZt(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 nZt(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 rZt(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 T1e(e,t,n,r){!(e&&typeof e=="object")||$4t(e,r)||(eZt(e,t),tZt(e,t),nZt(e,t,n),rZt(e,t))}function iZt(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Wl]:e.responseId}),e.responseModel&&t.setAttributes({[go]:e.responseModel}),nN(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[Lb]:!0}),e.finishReasons.length>0&&t.setAttributes({[cu]: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*v1e(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)T1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Wl]:r.responseId}),r.responseModel&&t.setAttributes({[go]:r.responseModel}),nN(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[Lb]:!0}),r.finishReasons.length>0&&t.setAttributes({[cu]: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 A1e(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=>{T1e(i,r,n,t)}),e.on("message",()=>{iZt(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 R1e=v(()=>{ol();Ya();Hp();gQ()});function sZt(e,t,n){let r={[Dy]:"anthropic",[sa]: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[Fp]=JSON.stringify(i.tools)),r[us]=i.model??"unknown","temperature"in i&&(r[Ly]=i.temperature),"top_p"in i&&(r[Fy]=i.top_p),"stream"in i&&(r[eR]=i.stream),"top_k"in i&&(r[hH]=i.top_k),"frequency_penalty"in i&&(r[Uy]=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 yQ(e,t){let n=_1e(t);E1e(e,n),"prompt"in t&&e.setAttributes({[iLe]:JSON.stringify(t.prompt)})}function oZt(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 aZt(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Wl]:t.id,[go]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[J7]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[J7]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&nN(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function cZt(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){b1e(e,t);return}n&&oZt(e,t),aZt(e,t)}}function w1e(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 uZt(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&&yQ(m,a),(async()=>{try{let y=await p;return v1e(y,m,c.recordOutputs??!1)}catch(y){return w1e(y,m,o)}})()));return sR(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&yQ(p,a);let h=t.apply(n,r);return A1e(h,p,c.recordOutputs??!1)}catch(h){return w1e(h,p,o)}})}function lZt(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=sZt(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 uZt(e,s,r,a,u,c,t,d,i,f,p);let h,m=af({name:`${c} ${l}`,op:`gen_ai.${c}`,attributes:u},y=>(h=s.apply(r,a),i.recordInputs&&d&&yQ(y,d),h.then(g=>(cZt(y,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),g})));return sR(h,m,"auto.ai.anthropic")}})}function k1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=iR(t,String(i)),a=S1e[o];return typeof s=="function"&&a?lZt(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?k1e(s,o,n):s}})}function wH(e,t){return k1e(e,"",jp(t))}var I1e=v(()=>{ol();Lo();Ny();Ya();Hp();hQ();R1e();gQ()});var zy,x1e,O1e,SQ,N1e,EQ=v(()=>{zy="Google_GenAI",x1e={"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}},O1e="google_genai",SQ="chats.create",N1e="chat"});function dZt(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 fZt(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 pZt(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 hZt(e,t,n,r){!e||dZt(e,r)||(fZt(e,t),pZt(e,t,n))}async function*P1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)hZt(i,r,n,t),yield i}finally{let i={[Lb]:!0};r.responseId&&(i[Wl]=r.responseId),r.responseModel&&(i[go]=r.responseModel),r.promptTokens!==void 0&&(i[di]=r.promptTokens),r.completionTokens!==void 0&&(i[Ps]=r.completionTokens),r.totalTokens!==void 0&&(i[Nc]=r.totalTokens),r.finishReasons.length&&(i[cu]=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 C1e=v(()=>{ol();Ya()});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 M1e=v(()=>{});function D1e(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 mZt(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[Ly]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[Fy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[hH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[tR]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[Uy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[nR]=e.presencePenalty),t}function gZt(e,t,n){let r={[Dy]:O1e,[sa]:e,[At]:"auto.ai.google_genai"};if(t){if(r[us]=D1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,mZt(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[Fp]=JSON.stringify(s)}}}else r[us]=D1e({},n);return r}function L1e(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}=cl(r);i&&e.setAttribute(al,i);let o=Array.isArray(s)?s.length:0;e.setAttributes({[Pc]:o,[oa]:JSON.stringify(qy(s))})}}function yZt(e,t,n){if(!(!t||typeof t!="object")){if(t.modelVersion&&e.setAttribute(go,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({[Ps]: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({[zs]:r.join("")})}if(n&&t.functionCalls){let r=t.functionCalls;Array.isArray(r)&&r.length>0&&e.setAttributes({[Fo]:JSON.stringify(r)})}}}function U1e(e,t,n,r,i){let s=t===SQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=gZt(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&&L1e(h,d,o);let m=await a.apply(r,u);return P1e(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}}):af({name:s?`${l} ${p} create`:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},h=>(i.recordInputs&&d&&L1e(h,d,o),of(()=>a.apply(r,u),m=>{Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}})},()=>{},m=>{!s&&!o&&yZt(h,m,i.recordOutputs)})))}})}function bQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=iR(t,String(i)),c=x1e[a];if(typeof o=="function"&&c){if(a===SQ){let u=U1e(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?bQ(f,N1e,n):f}}return U1e(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?bQ(o,a,n):o}})}function kH(e,t){return bQ(e,"",jp(t))}var F1e=v(()=>{ol();Lo();Ny();Vj();Ya();tN();Hp();EQ();C1e();M1e()});var IH,qb,j1e,xH=v(()=>{IH="LangChain",qb="auto.ai.langchain",j1e={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"&&Hy(n)?Fb(n):n);return JSON.stringify(t)}catch{return String(e)}return Tm(e)}function sN(e){let t=e.toLowerCase();return j1e[t]??t}function H1e(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 _Q(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function oN(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:sN(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"?H1e(s):"user";return{role:sN(o),content:cR(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:sN(i),content:cR(t.content)}}if(t.role)return{role:sN(String(t.role)),content:cR(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:sN(H1e(r)),content:cR(t.content)}:{role:"user",content:cR(t.content)}})}function SZt(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;ul(r,Ly,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;ul(r,tR,o);let a=t?.top_p??i?.top_p;ul(r,Fy,a);let c=t?.frequency_penalty;ul(r,Uy,c);let u=t?.presence_penalty;return ul(r,nR,u),t&&"stream"in t&&Kl(r,eR,!!t.stream),r}function q1e(e,t,n,r,i){return{[Dy]:Tm(e??"langchain"),[sa]:"chat",[us]:Tm(t),[At]:qb,...SZt(n,r,i)}}function B1e(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){Kl(a,Pc,t.length);let c=t.map(u=>({role:"user",content:u}));Kl(a,oa,Tm(c))}return a}function G1e(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=oN(t.flat()),{systemInstructions:u,filteredMessages:l}=cl(c);u&&Kl(a,al,u);let d=Array.isArray(l)?l.length:0;Kl(a,Pc,d);let f=qy(l);Kl(a,oa,Tm(f))}return a}function EZt(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&&Kl(t,Fo,Tm(n))}function bZt(e,t){if(!e)return;let n=e.tokenUsage,r=e.usage;if(n)ul(t,di,n.promptTokens),ul(t,Ps,n.completionTokens),ul(t,Nc,n.totalTokens);else if(r){ul(t,di,r.input_tokens),ul(t,Ps,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&&ul(t,Nc,o),r.cache_creation_input_tokens!==void 0&&ul(t,lLe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&ul(t,dLe,r.cache_read_input_tokens)}}function z1e(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&&Kl(n,cu,Tm(u)),EZt(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Kl(n,zs,Tm(l))}}bZt(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&&Kl(n,go,o);let a=r?.id??s?.id;a&&Kl(n,Wl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Kl(n,aLe,Tm(c)),n}var Kl,ul,OH=v(()=>{Lo();Ya();eQ();tN();Hp();xH();Kl=(e,t,n)=>{n!=null&&(e[t]=n)},ul=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function NH(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=_Q(d),m=B1e(o,a,t,h,f),y=m[us],g=m[sa];Uo({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=_Q(d),m=G1e(o,a,t,h,f),y=m[us],g=m[sa];Uo({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=z1e(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:`${qb}.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"}},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:`${qb}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[At]:qb,[Ub]:l};t&&(d[gH]=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({[yH]: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:`${qb}.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 V1e=v(()=>{ol();Lo();Ny();Ya();Hp();xH();OH()});var PH,TQ,vQ=v(()=>{PH="LangGraph",TQ="auto.ai.langgraph"});function _Zt(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 TZt(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 vZt(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(go,r.model_name),r.finish_reason&&typeof r.finish_reason=="string"&&e.setAttribute(cu,[r.finish_reason])}}function W1e(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 K1e(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=_Zt(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=oN(o);e.setAttribute(zs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=TZt(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,vZt(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ps,l),d>0&&e.setAttribute(Nc,d)}var Z1e=v(()=>{Ya();OH()});function AQ(e,t){return new Proxy(e,{apply(n,r,i){return af({op:"gen_ai.create_agent",name:"create_agent",attributes:{[At]:TQ,[zt]:"gen_ai.create_agent",[sa]:"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(G7,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=AZt(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 AZt(e,t,n,r){return new Proxy(e,{apply(i,s,o){return af({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[At]:TQ,[zt]:mH,[sa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(uLe,c),a.setAttribute(G7,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(QO,d);let f=W1e(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 g=oN(m),{systemInstructions:E,filteredMessages:S}=cl(g);E&&a.setAttribute(al,E);let b=qy(S),_=Array.isArray(S)?S.length:0;a.setAttributes({[oa]:JSON.stringify(b),[Pc]:_})}let y=await Reflect.apply(i,s,o);return h&&K1e(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 CH(e,t){return e.compile=AQ(e.compile,jp(t)),e}var Y1e=v(()=>{ol();Lo();Ny();Ya();tN();Hp();OH();vQ();Z1e()});function aN(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var J1e=v(()=>{});function cN(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 X1e=v(()=>{});function eUe(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 tUe(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=mCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?RZt(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:Q1e(o[3]),colno:Q1e(o[4]),in_app:eUe(f||"",p)}}if(i.match(t))return{filename:i}}}function RQ(e){return[90,tUe(e)]}function Q1e(e){return parseInt(e||"",10)||void 0}function RZt(e){try{return decodeURI(e)}catch{return}}var nUe=v(()=>{kA()});var uu,rUe=v(()=>{uu=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();HCe();Ny();Sm();a7();c7();zj();Lo();ol();mo();DX();LA();hDe();tH();b7();mDe();gDe();LO();Vj();xc();HA();EDe();bDe();TDe();vDe();xDe();M7();PDe();MDe();HDe();VDe();$De();tLe();nLe();rLe();_7();$Le();fQ();y1e();vH();I1e();hQ();F1e();EQ();V1e();xH();Y1e();vQ();J1e();za();Va();br();Dp();$d();JDe();X1e();kA();nUe();by();Cj();Em();PO();SDe();rUe();Ry();gj();yy()});function rt(e,t,n){return n?JZt(e,t,n):YZt(e,t)}function YZt(e,t){return Object.assign(n=>{let r=uN[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return uN[e]=i,(0,wQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function JZt(e,t,n){return Object.assign(r=>{let i=n(r),s=uN[e];if(s)return s.setConfig(i),s;let o=new t(i);return uN[e]=o,(0,wQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function lN(e){let t=!1,n=[];if(!XZt(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 XZt(e){return typeof e._wrap=="function"}var wQ,uN,MH=v(()=>{wQ=Se(Yt(),1),uN={}});var Qt,uf=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var DH,iUe=v(()=>{DH="@sentry/instrumentation-http"});function sUe(e,t,n,r){let i=0,s=[];Qt&&Y.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&&Y.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){Qt&&Y.error(r,"Error building captured request body",c)}})}catch(c){Qt&&Y.error(r,"Error patching request to capture body",c)}}var oUe=v(()=>{st();uf()});import{subscribe as QZt}from"node:diagnostics_channel";function uUe(e,t){Gs(e,"_startSpanCallback",new WeakRef(t))}function e9t(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(cUe.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(aUe)||!l)return a.apply(c,u);Qt&&Y.log(IQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=XO(f),m=f.ip||f.socket?.remoteAddress,y=f.url||"/";n!=="none"&&!t?.(y,f)&&sUe(f,d,n,IQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let g=(f.method||"GET").toUpperCase(),E=_m(y),S=`${g} ${E}`;return d.setTransactionName(S),r&&l&&t9t(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),OO(d,()=>{let b={traceId:Wa(),sampleRand:Do(),propagationSpanId:Ka()};Un().setPropagationContext({...b}),d.setPropagationContext({...b});let _=Yd.extract(Ve.active(),h.headers).setValue(aUe,!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)})})}});cUe.add(o),e.emit=o}function t9t(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&&Y.log(`Recorded request session with status: ${i.status}`);let s=new Date;s.setSeconds(0,0);let o=s.toISOString(),a=kQ.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&&Y.log("Opened new request session aggregate.");let u={[o]:c};kQ.set(e,u);let l=()=>{clearTimeout(f),d(),kQ.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&&Y.log("Sending request session aggregate due to client flush"),l()}),f=setTimeout(()=>{Qt&&Y.log("Sending request session aggregate due to flushing schedule"),l()},r).unref()}}})}var aUe,IQ,kQ,cUe,$Zt,dN,LH=v(()=>{Ce();st();uf();oUe();aUe=tl("sentry_http_server_instrumented"),IQ="Http.Server",kQ=new Map,cUe=new WeakSet;$Zt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:IQ,setupOnce(){QZt("http.server.request.start",(r=>{e9t(r.server,t)}))},afterAllSetup(n){Qt&&n.getIntegrationByName("Http")&&Y.warn("It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.")}}}),dN=$Zt});import{errorMonitor as n9t}from"node:events";function i9t(e){return e.headers["next-router-prefetch"]==="1"}function s9t(e){let t=_m(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 o9t(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"&&s9t(r)||n?.(r,e))}function a9t(e){let t=c9t(e.headers);return t==null?{}:u9t(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function c9t(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function u9t(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function l9t(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[cm]:r,[hb]: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[W8]=a,s[K8]=c,s[V8]=u,s["net.peer.port"]=l}if(s[hb]=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 d9t(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var vm,lUe,r9t,fN,xQ=v(()=>{Ce();vm=Se(fr(),1);Nn();st();uf();LH();lUe="Http.ServerSpans",r9t=((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:lUe,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;uUe(f,m=>{if(o9t(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Y.log(lUe,"Skipping span creation for incoming request",f.url),m();let y=d.url||f.url||"/",g=JO(y),E=f.headers,S=E["user-agent"],b=E["x-forwarded-for"],_=f.httpVersion,T=E.host,A=T?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",R=c.tracer,x=y.startsWith("https")?"https":"http",k=d.method||f.method?.toUpperCase()||"GET",N=g?g.pathname:_m(y),P=`${k} ${N}`,C=R.startSpan(P,{kind:$r.SERVER,attributes:{[zt]:"http.server",[At]:"auto.http.otel.http","sentry.http.prefetch":i9t(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 b=="string"?b.split(",")[0]:void 0,"http.user_agent":S,"http.scheme":x,"http.flavor":_,"net.transport":_?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...a9t(f),...sH(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)(Ft.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=l9t(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(n9t,()=>{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"&&d9t(u,r))return Qt&&Y.log("Dropping transaction due to status code",u),null}return c},afterAllSetup(c){Qt&&(c.getIntegrationByName("Http")&&Y.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")||Y.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."))}}}),fN=r9t});function pN(e,t){if(!e)return t;let n=Ib(e),r=Ib(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 Oj(a)}var OQ=v(()=>{st()});function dUe(e,t){let n=f9t(e),r=t?.statusCode,i=aN(r);Vl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function UH(e,t){let n=FH(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=Db(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&&Y.log(uR,"Added sentry-trace header to outgoing request")}catch(l){Qt&&Y.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&&Y.log(uR,"Added traceparent header to outgoing request")}catch(l){Qt&&Y.error(uR,"Failed to add traceparent header to outgoing request:",Cp(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=pN(l,a);if(d)try{e.setHeader("baggage",d),Qt&&Y.log(uR,"Added baggage header to outgoing request")}catch(f){Qt&&Y.error(uR,"Failed to add baggage header to outgoing request:",Cp(f)?f.message:"Unknown error")}}}}function f9t(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=Cy(n.toString()),i={url:My(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 fUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function FH(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var uR,pUe=v(()=>{st();uf();OQ();uR="@sentry/instrumentation-http"});import{subscribe as NQ,unsubscribe as PQ}from"node:diagnostics_channel";import{errorMonitor as hUe}from"node:events";function p9t(e){let t=FH(e),[n,r]=P7(JO(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[mJ]:i,[ly]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function h9t(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[cm]:t,[uJ]:r,"http.flavor":r,[lJ]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...m9t(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[aJ]=a,o[cJ]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function m9t(e){let t=g9t(e.headers);return t==null?{}:y9t(e.headers)?{[Y8]:t}:{[J8]:t}}function g9t(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 y9t(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var mUe,hN,Bb,CQ=v(()=>{Ce();mUe=Se(fr(),1),hN=Se(Yt(),1);Nn();st();uf();iUe();pUe();Bb=class extends hN.InstrumentationBase{constructor(t={}){super(DH,Pn,t),this._propagationDecisionMap=new uu(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,NQ("http.client.response.finish",n),NQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&NQ("http.client.request.created",i)),a),o=()=>{PQ("http.client.response.finish",n),PQ("http.client.request.error",r),PQ("http.client.request.created",i)};return[new hN.InstrumentationNodeModuleDefinition("http",["*"],s,o),new hN.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=p9t(t),s=Kj({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=Ft.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=h9t(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(hUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(hUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Y.log(DH,"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&&dUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Y.log(DH,"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=Ft.setSpan(Ve.active(),s);Ve.with(o,()=>{UH(t,this._propagationDecisionMap)})}else i&&UH(t,this._propagationDecisionMap)}else i&&UH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,mUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=fUe(t),i=FH(t);return n(i,r)}}});var gUe,S9t,yUe,SUe=v(()=>{MH();LH();xQ();CQ();gUe="Http",S9t=rt(`${gUe}.sentry`,e=>new Bb(e)),yUe=(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=dN(t),s=fN(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:gUe,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),S9t(r)},processEvent(u){return s.processEvent(u)}}}});var lf,Am,mN,lR=v(()=>{st();lf=CX(process.versions.node),Am=lf.major,mN=lf.minor});function EUe(e,t){let n=HH(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=Db(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:b9t(e.headers);if(DQ(u,MQ),DQ(u,jH),i&&DQ(u,E9t),!(LQ(u,MQ)!==-1)){o&&u.push(MQ,o),c&&LQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=LQ(u,jH);if(a&&d===-1)u.push(jH,a);else if(a){let f=u[d+1],p=pN(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=_9t(u))}function b9t(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{Y.warn(`Failed to convert string request header to array header: ${r}`)}return n}function _9t(e){let t=[];for(let n=0;n{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: ${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: ${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 bUe(e,t){let n=T9t(e),r=t.statusCode,i=aN(r);Vl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function T9t(e){try{let t=HH(e.origin,e.path),n=Cy(t),r={url:My(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 HH(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 MQ,jH,E9t,_Ue=v(()=>{st();OQ();MQ="sentry-trace",jH="baggage",E9t="traceparent"});import*as dR from"diagnostics_channel";var TUe,vUe,Gb,UQ=v(()=>{Ce();TUe=Se(fr(),1),vUe=Se(Yt(),1);st();lR();_Ue();Gb=class extends vUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Pn,t),this._channelSubs=[],this._propagationDecisionMap=new uu(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&&EUe(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&&bUe(t,n)}_subscribeToChannel(t,n){let r=Am>18||Am===18&&mN>=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,TUe.isTracingSuppressed)(Ve.active()))return!0;let n=HH(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var v9t,A9t,R9t,AUe,RUe=v(()=>{MH();UQ();v9t="NodeFetch",A9t=rt(`${v9t}.sentry`,Gb,e=>e),R9t=((e={})=>({name:"NodeFetch",setupOnce(){A9t(e)}})),AUe=R9t});var jQ=w(qH=>{"use strict";Object.defineProperty(qH,"__esModule",{value:!0});qH.AbstractAsyncHooksContextManager=void 0;var w9t=Z("events"),k9t=["addListener","on","once","prependListener","prependOnceListener"],FQ=class{bind(t,n){return n instanceof w9t.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),k9t.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=FQ});var wUe=w(BH=>{"use strict";Object.defineProperty(BH,"__esModule",{value:!0});BH.AsyncHooksContextManager=void 0;var I9t=(Ce(),ke(Ye)),x9t=Z("async_hooks"),O9t=jQ(),HQ=class extends O9t.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=x9t.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]??I9t.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()}};BH.AsyncHooksContextManager=HQ});var kUe=w(GH=>{"use strict";Object.defineProperty(GH,"__esModule",{value:!0});GH.AsyncLocalStorageContextManager=void 0;var N9t=(Ce(),ke(Ye)),P9t=Z("async_hooks"),C9t=jQ(),qQ=class extends C9t.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new P9t.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??N9t.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}};GH.AsyncLocalStorageContextManager=qQ});var IUe=w(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});fR.AsyncLocalStorageContextManager=fR.AsyncHooksContextManager=void 0;var M9t=wUe();Object.defineProperty(fR,"AsyncHooksContextManager",{enumerable:!0,get:function(){return M9t.AsyncHooksContextManager}});var D9t=kUe();Object.defineProperty(fR,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return D9t.AsyncLocalStorageContextManager}})});var BQ=w(pR=>{"use strict";Object.defineProperty(pR,"__esModule",{value:!0});pR._clearDefaultServiceNameCache=pR.defaultServiceName=void 0;var gN;function L9t(){if(gN===void 0)try{let e=globalThis.process.argv0;gN=e?`unknown_service:${e}`:"unknown_service"}catch{gN="unknown_service"}return gN}pR.defaultServiceName=L9t;function U9t(){gN=void 0}pR._clearDefaultServiceNameCache=U9t});var xUe=w(zH=>{"use strict";Object.defineProperty(zH,"__esModule",{value:!0});zH.isPromiseLike=void 0;var F9t=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";zH.isPromiseLike=F9t});var VQ=w(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});qp.defaultResource=qp.emptyResource=qp.resourceFromDetectedResource=qp.resourceFromAttributes=void 0;var SN=(Ce(),ke(Ye)),GQ=fr(),zb=(Nn(),ke(Mr)),j9t=BQ(),yN=xUe(),VH=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=OUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,yN.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,yN.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=OUe(this._rawAttributes),this._schemaUrl=G9t(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,yN.isPromiseLike)(n)?[t,n.catch(r=>{SN.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function G9t(e){if(typeof e=="string"||e===void 0)return e;SN.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function z9t(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;SN.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var PUe=w(WH=>{"use strict";Object.defineProperty(WH,"__esModule",{value:!0});WH.detectResources=void 0;var NUe=(Ce(),ke(Ye)),WQ=VQ(),V9t=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,WQ.resourceFromDetectedResource)(n.detect(e));return NUe.diag.debug(`${n.constructor.name} found resource.`,r),r}catch(r){return NUe.diag.debug(`${n.constructor.name} failed: ${r.message}`),(0,WQ.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,WQ.emptyResource)());WH.detectResources=V9t});var MUe=w(KH=>{"use strict";Object.defineProperty(KH,"__esModule",{value:!0});KH.envDetector=void 0;var W9t=(Ce(),ke(Ye)),K9t=(Nn(),ke(Mr)),CUe=fr(),KQ=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,CUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,CUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){W9t.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[K9t.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}};KH.envDetector=new KQ});var EN=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 YH=w(ZH=>{"use strict";Object.defineProperty(ZH,"__esModule",{value:!0});ZH.execAsync=void 0;var Z9t=Z("child_process"),Y9t=Z("util");ZH.execAsync=Y9t.promisify(Z9t.exec)});var DUe=w(JH=>{"use strict";Object.defineProperty(JH,"__esModule",{value:!0});JH.getMachineId=void 0;var J9t=YH(),X9t=(Ce(),ke(Ye));async function Q9t(){try{let t=(await(0,J9t.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){X9t.diag.debug(`error reading machine id: ${e}`)}}JH.getMachineId=Q9t});var LUe=w(XH=>{"use strict";Object.defineProperty(XH,"__esModule",{value:!0});XH.getMachineId=void 0;var $9t=Z("fs"),eYt=(Ce(),ke(Ye));async function tYt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await $9t.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){eYt.diag.debug(`error reading machine id: ${n}`)}}XH.getMachineId=tYt});var FUe=w(QH=>{"use strict";Object.defineProperty(QH,"__esModule",{value:!0});QH.getMachineId=void 0;var nYt=Z("fs"),rYt=YH(),UUe=(Ce(),ke(Ye));async function iYt(){try{return(await nYt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){UUe.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,rYt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){UUe.diag.debug(`error reading machine id: ${e}`)}}QH.getMachineId=iYt});var HUe=w($H=>{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.getMachineId=void 0;var jUe=Z("process"),sYt=YH(),oYt=(Ce(),ke(Ye));async function aYt(){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,sYt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){oYt.diag.debug(`error reading machine id: ${n}`)}}$H.getMachineId=aYt});var qUe=w(eq=>{"use strict";Object.defineProperty(eq,"__esModule",{value:!0});eq.getMachineId=void 0;var cYt=(Ce(),ke(Ye));async function uYt(){cYt.diag.debug("could not read machine-id: unsupported platform")}eq.getMachineId=uYt});var BUe=w(tq=>{"use strict";Object.defineProperty(tq,"__esModule",{value:!0});tq.getMachineId=void 0;var lYt=Z("process"),Vb;async function dYt(){if(!Vb)switch(lYt.platform){case"darwin":Vb=(await Promise.resolve().then(()=>Se(DUe()))).getMachineId;break;case"linux":Vb=(await Promise.resolve().then(()=>Se(LUe()))).getMachineId;break;case"freebsd":Vb=(await Promise.resolve().then(()=>Se(FUe()))).getMachineId;break;case"win32":Vb=(await Promise.resolve().then(()=>Se(HUe()))).getMachineId;break;default:Vb=(await Promise.resolve().then(()=>Se(qUe()))).getMachineId;break}return Vb()}tq.getMachineId=dYt});var ZQ=w(hR=>{"use strict";Object.defineProperty(hR,"__esModule",{value:!0});hR.normalizeType=hR.normalizeArch=void 0;var fYt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};hR.normalizeArch=fYt;var pYt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};hR.normalizeType=pYt});var zUe=w(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});nq.hostDetector=void 0;var YQ=EN(),GUe=Z("os"),hYt=BUe(),mYt=ZQ(),JQ=class{detect(t){return{attributes:{[YQ.ATTR_HOST_NAME]:(0,GUe.hostname)(),[YQ.ATTR_HOST_ARCH]:(0,mYt.normalizeArch)((0,GUe.arch)()),[YQ.ATTR_HOST_ID]:(0,hYt.getMachineId)()}}}};nq.hostDetector=new JQ});var KUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.osDetector=void 0;var VUe=EN(),WUe=Z("os"),gYt=ZQ(),XQ=class{detect(t){return{attributes:{[VUe.ATTR_OS_TYPE]:(0,gYt.normalizeType)((0,WUe.platform)()),[VUe.ATTR_OS_VERSION]:(0,WUe.release)()}}}};rq.osDetector=new XQ});var ZUe=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.processDetector=void 0;var yYt=(Ce(),ke(Ye)),Rm=EN(),SYt=Z("os"),QQ=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=SYt.userInfo();n[Rm.ATTR_PROCESS_OWNER]=r.username}catch(r){yYt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};iq.processDetector=new QQ});var YUe=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.serviceInstanceIdDetector=void 0;var EYt=EN(),bYt=Z("crypto"),$Q=class{detect(t){return{attributes:{[EYt.ATTR_SERVICE_INSTANCE_ID]:(0,bYt.randomUUID)()}}}};sq.serviceInstanceIdDetector=new $Q});var JUe=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.serviceInstanceIdDetector=Bp.processDetector=Bp.osDetector=Bp.hostDetector=void 0;var _Yt=zUe();Object.defineProperty(Bp,"hostDetector",{enumerable:!0,get:function(){return _Yt.hostDetector}});var TYt=KUe();Object.defineProperty(Bp,"osDetector",{enumerable:!0,get:function(){return TYt.osDetector}});var vYt=ZUe();Object.defineProperty(Bp,"processDetector",{enumerable:!0,get:function(){return vYt.processDetector}});var AYt=YUe();Object.defineProperty(Bp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return AYt.serviceInstanceIdDetector}})});var XUe=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var oq=JUe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return oq.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return oq.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return oq.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return oq.serviceInstanceIdDetector}})});var QUe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.noopDetector=mR.NoopDetector=void 0;var aq=class{detect(){return{attributes:{}}}};mR.NoopDetector=aq;mR.noopDetector=new aq});var $Ue=w(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.noopDetector=lu.serviceInstanceIdDetector=lu.processDetector=lu.osDetector=lu.hostDetector=lu.envDetector=void 0;var RYt=MUe();Object.defineProperty(lu,"envDetector",{enumerable:!0,get:function(){return RYt.envDetector}});var cq=XUe();Object.defineProperty(lu,"hostDetector",{enumerable:!0,get:function(){return cq.hostDetector}});Object.defineProperty(lu,"osDetector",{enumerable:!0,get:function(){return cq.osDetector}});Object.defineProperty(lu,"processDetector",{enumerable:!0,get:function(){return cq.processDetector}});Object.defineProperty(lu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return cq.serviceInstanceIdDetector}});var wYt=QUe();Object.defineProperty(lu,"noopDetector",{enumerable:!0,get:function(){return wYt.noopDetector}})});var t$=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 kYt=PUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return kYt.detectResources}});var bN=$Ue();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return bN.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return bN.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return bN.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return bN.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return bN.serviceInstanceIdDetector}});var e$=VQ();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return e$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return e$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return e$.emptyResource}});var IYt=BQ();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return IYt.defaultServiceName}})});var eFe=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.ExceptionEventName=void 0;uq.ExceptionEventName="exception"});var tFe=w(lq=>{"use strict";Object.defineProperty(lq,"__esModule",{value:!0});lq.SpanImpl=void 0;var ca=(Ce(),ke(Ye)),ua=fr(),Wb=(Nn(),ke(Mr)),xYt=eFe(),n$=class{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;_attributesCount=0;name;status={code:ca.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=ua.otperformance.now(),this._performanceOffset=n-(this._performanceStartTime+ua.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 ca.diag.warn(`Invalid attribute key: ${t}`),this;if(!(0,ua.isAttributeValue)(n))return ca.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 ca.diag.warn("No events allowed."),this._droppedEventsCount++,this;i!==void 0&&this.events.length>=i&&(this._droppedEventsCount===0&&ca.diag.debug("Dropping extra events."),this.events.shift(),this._droppedEventsCount++),(0,ua.isTimeInput)(n)&&((0,ua.isTimeInput)(r)||(r=n),n=void 0);let s=(0,ua.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&&ca.diag.debug("Dropping extra links."),this.links.shift(),this._droppedLinksCount++);let{attributePerLinkCountLimit:r}=this._spanLimits,i=(0,ua.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===ca.SpanStatusCode.UNSET)return this;if(this.status.code===ca.SpanStatusCode.OK)return this;let n={code:t.code};return t.code===ca.SpanStatusCode.ERROR&&(typeof t.message=="string"?n.message=t.message:t.message!=null&&ca.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()){ca.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,ua.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0&&(ca.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&&ca.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`),this._droppedLinksCount>0&&ca.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<=ua.otperformance.now())return(0,ua.hrTime)(t+this._performanceOffset);if(typeof t=="number")return(0,ua.millisToHrTime)(t);if(t instanceof Date)return(0,ua.millisToHrTime)(t.getTime());if((0,ua.isTimeInputHrTime)(t))return t;if(this._startTimeProvided)return(0,ua.millisToHrTime)(Date.now());let n=ua.otperformance.now()-this._performanceStartTime;return(0,ua.addHrTimes)(this.startTime,(0,ua.millisToHrTime)(n))}isRecording(){return this._ended===!1}recordException(t,n){let r={};typeof t=="string"?r[Wb.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[Wb.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[Wb.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[Wb.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[Wb.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[Wb.ATTR_EXCEPTION_TYPE]||r[Wb.ATTR_EXCEPTION_MESSAGE]?this.addEvent(xYt.ExceptionEventName,r,n):ca.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}}`);ca.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?(ca.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}};lq.SpanImpl=n$});var gR=w(_N=>{"use strict";Object.defineProperty(_N,"__esModule",{value:!0});_N.SamplingDecision=void 0;var OYt;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(OYt=_N.SamplingDecision||(_N.SamplingDecision={}))});var fq=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.AlwaysOffSampler=void 0;var NYt=gR(),r$=class{shouldSample(){return{decision:NYt.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};dq.AlwaysOffSampler=r$});var hq=w(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});pq.AlwaysOnSampler=void 0;var PYt=gR(),i$=class{shouldSample(){return{decision:PYt.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};pq.AlwaysOnSampler=i$});var a$=w(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});gq.ParentBasedSampler=void 0;var mq=(Ce(),ke(Ye)),CYt=fr(),nFe=fq(),s$=hq(),o$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,CYt.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 nFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new s$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new nFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=mq.trace.getSpanContext(t);return!a||!(0,mq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&mq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&mq.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()}}`}};gq.ParentBasedSampler=o$});var u$=w(yq=>{"use strict";Object.defineProperty(yq,"__esModule",{value:!0});yq.TraceIdRatioBasedSampler=void 0;var MYt=(Ce(),ke(Ye)),rFe=gR(),c$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,MYt.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};yq.TraceIdRatioBasedSampler=c$});var f$=w(yR=>{"use strict";Object.defineProperty(yR,"__esModule",{value:!0});yR.buildSamplerFromEnv=yR.loadDefaultConfig=void 0;var d$=(Ce(),ke(Ye)),zp=fr(),iFe=fq(),l$=hq(),Sq=a$(),sFe=u$(),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 Eq=1;function DYt(){return{sampler:aFe(),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=DYt;function aFe(){let e=(0,zp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Vp.ParentBasedAlwaysOn;switch(e){case Vp.AlwaysOn:return new l$.AlwaysOnSampler;case Vp.AlwaysOff:return new iFe.AlwaysOffSampler;case Vp.ParentBasedAlwaysOn:return new Sq.ParentBasedSampler({root:new l$.AlwaysOnSampler});case Vp.ParentBasedAlwaysOff:return new Sq.ParentBasedSampler({root:new iFe.AlwaysOffSampler});case Vp.TraceIdRatio:return new sFe.TraceIdRatioBasedSampler(oFe());case Vp.ParentBasedTraceIdRatio:return new Sq.ParentBasedSampler({root:new sFe.TraceIdRatioBasedSampler(oFe())});default:return d$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Vp.ParentBasedAlwaysOn}".`),new Sq.ParentBasedSampler({root:new l$.AlwaysOnSampler})}}yR.buildSamplerFromEnv=aFe;function oFe(){let e=(0,zp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(d$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${Eq}.`),Eq):e<0||e>1?(d$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${Eq}.`),Eq):e}});var p$=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 cFe=f$(),bq=fr();Zl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Zl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function LYt(e){let t={sampler:(0,cFe.buildSamplerFromEnv)()},n=(0,cFe.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=LYt;function UYt(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,bq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,bq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Zl.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,bq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,bq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Zl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Zl.reconfigureLimits=UYt});var uFe=w(_q=>{"use strict";Object.defineProperty(_q,"__esModule",{value:!0});_q.BatchSpanProcessorBase=void 0;var SR=(Ce(),ke(Ye)),wm=fr(),h$=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)}};_q.BatchSpanProcessorBase=h$});var lFe=w(Tq=>{"use strict";Object.defineProperty(Tq,"__esModule",{value:!0});Tq.BatchSpanProcessor=void 0;var FYt=uFe(),m$=class extends FYt.BatchSpanProcessorBase{onShutdown(){}};Tq.BatchSpanProcessor=m$});var pFe=w(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});Aq.RandomIdGenerator=void 0;var jYt=8,fFe=16,g$=class{generateTraceId=dFe(fFe);generateSpanId=dFe(jYt)};Aq.RandomIdGenerator=g$;var vq=Buffer.allocUnsafe(fFe);function dFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(vq[e-1]=1);return vq.toString("hex",0,e)}}});var hFe=w(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});ER.RandomIdGenerator=ER.BatchSpanProcessor=void 0;var HYt=lFe();Object.defineProperty(ER,"BatchSpanProcessor",{enumerable:!0,get:function(){return HYt.BatchSpanProcessor}});var qYt=pFe();Object.defineProperty(ER,"RandomIdGenerator",{enumerable:!0,get:function(){return qYt.RandomIdGenerator}})});var y$=w(bR=>{"use strict";Object.defineProperty(bR,"__esModule",{value:!0});bR.RandomIdGenerator=bR.BatchSpanProcessor=void 0;var mFe=hFe();Object.defineProperty(bR,"BatchSpanProcessor",{enumerable:!0,get:function(){return mFe.BatchSpanProcessor}});Object.defineProperty(bR,"RandomIdGenerator",{enumerable:!0,get:function(){return mFe.RandomIdGenerator}})});var gFe=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 yFe=w(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.TracerMetrics=void 0;var Rq=gR(),TN=gFe(),S$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(TN.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(TN.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=GYt(n);if(this.startedSpans.add(1,{[TN.ATTR_OTEL_SPAN_PARENT_ORIGIN]:BYt(t),[TN.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===Rq.SamplingDecision.NOT_RECORD)return()=>{};let i={[TN.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};wq.TracerMetrics=S$;function BYt(e){return e?e.isRemote?"remote":"local":"none"}function GYt(e){switch(e){case Rq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case Rq.SamplingDecision.RECORD:return"RECORD_ONLY";case Rq.SamplingDecision.NOT_RECORD:return"DROP"}}});var SFe=w(kq=>{"use strict";Object.defineProperty(kq,"__esModule",{value:!0});kq.VERSION=void 0;kq.VERSION="2.6.1"});var EFe=w(xq=>{"use strict";Object.defineProperty(xq,"__esModule",{value:!0});xq.Tracer=void 0;var jo=(Ce(),ke(Ye)),Iq=fr(),zYt=tFe(),VYt=p$(),WYt=y$(),KYt=yFe(),ZYt=SFe(),E$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,VYt.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new WYt.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",ZYt.VERSION):jo.createNoopMeter();this._tracerMetrics=new KYt.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,Iq.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,Iq.sanitizeAttributes)(S.attributes)})),f=(0,Iq.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,y={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(y);let g=(0,Iq.sanitizeAttributes)(Object.assign(f,p.attributes));return new zYt.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??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}};xq.Tracer=E$});var bFe=w(Oq=>{"use strict";Object.defineProperty(Oq,"__esModule",{value:!0});Oq.MultiSpanProcessor=void 0;var YYt=fr(),b$=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,YYt.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)})}};Oq.MultiSpanProcessor=b$});var _Fe=w(Kb=>{"use strict";Object.defineProperty(Kb,"__esModule",{value:!0});Kb.BasicTracerProvider=Kb.ForceFlushState=void 0;var JYt=fr(),XYt=t$(),QYt=EFe(),$Yt=f$(),e5t=bFe(),t5t=p$(),_R;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(_R=Kb.ForceFlushState||(Kb.ForceFlushState={}));var _$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,JYt.merge)({},(0,$Yt.loadDefaultConfig)(),(0,t5t.reconfigureLimits)(t));this._resource=n.resource??(0,XYt.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new e5t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new QYt.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=_R.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==_R.timeout&&(s=_R.resolved,i(s))}).catch(a=>{clearTimeout(o),s=_R.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==_R.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};Kb.BasicTracerProvider=_$});var TFe=w(Nq=>{"use strict";Object.defineProperty(Nq,"__esModule",{value:!0});Nq.ConsoleSpanExporter=void 0;var T$=fr(),v$=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,T$.hrTimeToMicroseconds)(t.startTime),duration:(0,T$.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:T$.ExportResultCode.SUCCESS})}};Nq.ConsoleSpanExporter=v$});var AFe=w(Pq=>{"use strict";Object.defineProperty(Pq,"__esModule",{value:!0});Pq.InMemorySpanExporter=void 0;var vFe=fr(),A$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:vFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:vFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};Pq.InMemorySpanExporter=A$});var RFe=w(Mq=>{"use strict";Object.defineProperty(Mq,"__esModule",{value:!0});Mq.SimpleSpanProcessor=void 0;var n5t=(Ce(),ke(Ye)),Cq=fr(),R$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Cq.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&n5t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Cq.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 Cq.internal._export(this._exporter,[t]);if(n.code!==Cq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Mq.SimpleSpanProcessor=R$});var wFe=w(Dq=>{"use strict";Object.defineProperty(Dq,"__esModule",{value:!0});Dq.NoopSpanProcessor=void 0;var w$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Dq.NoopSpanProcessor=w$});var k$=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 r5t=_Fe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return r5t.BasicTracerProvider}});var kFe=y$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return kFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return kFe.RandomIdGenerator}});var i5t=TFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return i5t.ConsoleSpanExporter}});var s5t=AFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return s5t.InMemorySpanExporter}});var o5t=RFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return o5t.SimpleSpanProcessor}});var a5t=wFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return a5t.NoopSpanProcessor}});var c5t=fq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return c5t.AlwaysOffSampler}});var u5t=hq();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return u5t.AlwaysOnSampler}});var l5t=a$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return l5t.ParentBasedSampler}});var d5t=u$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return d5t.TraceIdRatioBasedSampler}});var f5t=gR();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return f5t.SamplingDecision}})});function U$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function F$(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function p5t(e){return typeof e.kind=="number"}function h5t(e){return!!e.status}function NFe(e){return!!e.name}function m5t(e){if(!F$(e))return{};let t=e.attributes[ly]||e.attributes[uA],n={url:t,"http.method":e.attributes[gb]||e.attributes[cO]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=Cy(t);n.url=My(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function g5t(e){return p5t(e)?e.kind:$r.INTERNAL}function RR(e){return e.getValue(q$)}function MFe(e,t){return e.setValue(q$,t)}function E5t(e,t){Gs(e,CFe,t)}function AN(e){return e[CFe]}function vR(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(H$)==="1":!1;if(t===ja.SAMPLED)return!0;if(r)return!1;let i=n?n.get(j$):void 0,s=i?gm(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function DFe(e,t,n){let r=t[gb]||t[cO];if(r)return _5t({attributes:t,name:e,kind:n},r);let i=t[mb]||t[B8],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return b5t({attributes:t,name:e});let o=t[Wi]==="custom"?"custom":"route";if(t[$8])return{...vN(e,t,"route"),op:"rpc"};if(t[Q8])return{...vN(e,t,o),op:"message"};let u=t[z8];return u?{...vN(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function LFe(e){let t=F$(e)?e.attributes:{},n=NFe(e)?e.name:"",r=g5t(e);return DFe(n,t,r)}function b5t({attributes:e,name:t}){let n=e[Gl];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[G8];return{op:"db",description:r?r.toString():t,source:"task"}}function _5t({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}=v5t(n,t);if(!s)return{...vN(e,n),op:i.join(".")};let l=n[AR],d=`${r} ${s}`,f=l?`${d} (${T5t(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,g=!`${n[At]||"manual"}`.startsWith("auto"),E=n[Wi]==="custom",S=n[Gl],b=!E&&S==null&&(m||!g),{description:_,source:T}=b?{description:f,source:p}:vN(e,n);return{op:i.join("."),description:_,source:T,data:h}}function T5t(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 v5t(e,t){let n=e[Z8],r=e[uA]||e[ly],i=e[um],s=typeof r=="string"?Cy(r):void 0,o=s?My(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:_m(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:_m(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function vN(e,t,n="custom"){let r=t[Wi]||n,i=t[Gl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function UFe(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Wi],{description:o}=NFe(n)?LFe(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 FFe(){return Ft.getActiveSpan()}function jFe({dsc:e,sampled:t}){let n=e?kb(e):void 0,r=new Cc.TraceState,i=n?r.set(j$,n):r;return t===!1?i.set(H$,"1"):i}function qFe(){return Array.from(HFe)}function Hq(e){HFe.add(e)}function BFe(e,t={}){let n=Ft.getSpan(e);if(n?.spanContext().isRemote){let a=n.spanContext();return{dynamicSamplingContext:Ns(n),traceId:a.traceId,spanId:void 0,sampled:vR(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:Ns(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 GFe(e,{sentryTrace:t,baggage:n}){let r=CO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=gm(n);if(!s||c&&!ZX(c,u?.org_id))return e;let l=I5t({traceId:i,spanId:s,sampled:o,dsc:a});return Ft.setSpanContext(e,l)}function A5t(e,t,n){let r=zFe(GFe(e,t));return Ve.with(r,n)}function zFe(e){let t=RR(e),n={scope:t?t.scope:Un().clone(),isolationScope:t?t.isolationScope:vn()};return MFe(e,n)}function R5t(e){try{let t=e[I$];return Array.isArray(t)?t.join(","):t}catch{return}}function w5t(e){try{return e[Lq]}catch{return}}function k5t(e){let t=vt(e).data,n=t[uA]||t[ly];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(PFe);if(r)return r}function I5t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=jFe({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?ja.SAMPLED:ja.NONE,traceState:i}}function VFe(e,t,n){let r=KFe(),{name:i,parentSpan:s}=e;return QFe(s)(()=>{let a=JFe(e.scope,e.forceTransaction),u=e.onlyIfParent&&!Ft.getSpan(a)?(0,Cc.suppressTracing)(a):a,l=ZFe(e);if(!Os()){let d=(0,Cc.isTracingSuppressed)(u)?u:(0,Cc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(P$(f),Ve.with(a,()=>of(()=>t(f),()=>{vt(f).status===void 0&&f.setStatus({code:as.ERROR})},n?()=>f.end():void 0)))))}return r.startActiveSpan(i,l,u,d=>(P$(d),of(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function x5t(e,t){return VFe(e,t,!0)}function O5t(e,t){return VFe(e,n=>t(n,()=>n.end()),!1)}function N5t(e){let t=KFe(),{name:n,parentSpan:r}=e;return QFe(r)(()=>{let s=JFe(e.scope,e.forceTransaction),a=e.onlyIfParent&&!Ft.getSpan(s)?(0,Cc.suppressTracing)(s):s,c=ZFe(e);Os()||(a=(0,Cc.isTracingSuppressed)(a)?a:(0,Cc.suppressTracing)(a));let u=t.startSpan(n,c,a);return P$(u),u})}function WFe(e,t){let n=e?Ft.setSpan(Ve.active(),e):Ft.deleteSpan(Ve.active());return Ve.with(n,()=>t(Un()))}function KFe(){return ct()?.tracer||Ft.getTracer("@sentry/opentelemetry",Pn)}function ZFe(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?YFe(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function YFe(e){return e<9999999999?e*1e3:e}function P$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?YFe(n):n)}function JFe(e,t){let n=P5t(e),r=Ft.getSpan(n);if(!r||!t)return n;let i=Ft.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=vR(r.spanContext()),c=cs(r),u=Ns(c),l=jFe({dsc:u,sampled:a}),d={traceId:o,spanId:s,isRemote:!0,traceFlags:a?ja.SAMPLED:ja.NONE,traceState:l};return Ft.setSpanContext(i,d)}function P5t(e){if(e){let t=AN(e);if(t)return t}return Ve.active()}function C5t(e,t){return A5t(Ve.active(),e,t)}function M5t(e){let t=Wa(),n=Ka(),r={traceId:t,spanId:n,isRemote:!0,traceFlags:ja.NONE},i=Ft.setSpanContext(Ve.active(),r);return Ve.with(i,()=>(Un().setPropagationContext({traceId:t,sampleRand:Do()}),e()))}function XFe(e,t){let n=AN(t),r=n&&Ft.getSpan(n),i=r?xy(r):wb(t);return[r?Ns(r):Up(e,t),i]}function QFe(e){return e!==void 0?t=>WFe(e,t):t=>t()}function D5t(e){let t=(0,Cc.suppressTracing)(Ve.active());return Ve.with(t,e)}function $Fe(e){e.on("preprocessEvent",t=>{let n=FFe();if(!n||t.type==="transaction")return;t.contexts={trace:xy(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ns(r),...t.sdkProcessingMetadata},t})}function L5t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&AN(t))??Ve.active();if(e){let{scope:l}=nf(e);i=l&&AN(l)||Ft.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=BFe(i,{scope:t,client:n}),u={"sentry-trace":ky(s,o,a),baggage:kb(c)};return r&&(u.traceparent=Iy(s,o,a)),u}function eje(){function e(){let a=Ve.active(),c=RR(a);return c||{scope:MA(),isolationScope:Bl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=AN(a)||Ve.active();return Ve.with(u.setValue(O$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(x$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(N$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}FX({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:x5t,startSpanManual:O5t,startInactiveSpan:N5t,getActiveSpan:FFe,suppressTracing:D5t,getTraceData:L5t,continueTrace:C5t,startNewTrace:M5t,withActiveSpan:WFe})}function tje(e){class t extends e{constructor(...r){super(...r),Hq("SentryContextManager")}with(r,i,s,...o){let a=RR(r),c=a?.scope||Un(),u=a?.isolationScope||vn(),l=r.getValue(x$)===!0,d=r.getValue(O$),f=r.getValue(N$),p=d||c.clone(),h=f||(l?u.clone():u),g=MFe(r,{scope:p,isolationScope:h}).deleteValue(x$).deleteValue(O$).deleteValue(N$);return E5t(p,g),super.with(g,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:q$}}}return t}function U5t(e){let t=new Map;for(let n of e)F5t(t,n);return Array.from(t,function([n,r]){return r})}function nje(e){return e.attributes[L$]===!0?void 0:U$(e)}function F5t(e,t){let n=t.spanContext().spanId,r=nje(t);if(!r){C$(e,{id:n,span:t,children:[]});return}let i=j5t(e,r),s=C$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function j5t(e,t){let n=e.get(t);return n||C$(e,{id:t,children:[]})}function C$(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 ije(e){let t=F$(e)?e.attributes:{},n=h5t(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=IFe(t);if(i)return i}return n.message&&H5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=IFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function IFe(e){let t=e[cm]||e[hb],n=e[eJ],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:rje[n]||"unknown_error"}}function q5t(e){let t=e.attributes,n=t[At],r=t[zt],i=t[Wi];return{origin:n,op:r,source:i}}function B5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=sje(e),o=nf(e),a=e.attributes[tf],c={[Wi]:s,[tf]:a,[zt]:t,[At]:i,...r,...oje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=U$(e),p=ije(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:Ob(p),links:xb(u)},m=c[cm],y=typeof m=="number"?{response:{status_code:m}}:void 0;return{contexts:{trace:h,otel:{resource:e.resource.attributes},...y},spans:[],start_timestamp:au(e.startTime),timestamp:au(e.endTime),transaction:n,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:o.scope,capturedSpanIsolationScope:o.isolationScope,sampleRate:a,dynamicSamplingContext:Ns(e)},...s&&{transaction_info:{source:s}}}}function D$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{D$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=U$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=sje(r),y={[At]:m,[zt]:f,...oje(c),...h},g=ije(r),E={span_id:s,trace_id:o,data:y,description:p,parent_span_id:a,start_timestamp:au(u),timestamp:au(l)||void 0,status:Ob(g),op:f,origin:m,measurements:Nb(r.events),links:xb(d)};t.push(E),e.children.forEach(S=>{D$(S,t,n)})}function sje(e){let{op:t,source:n,origin:r}=q5t(e),{op:i,description:s,source:o,data:a}=LFe(e),c=t||i,u=n||o,l={...a,...G5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function oje(e){let t={...e};return delete t[tf],delete t[L$],delete t[Gl],t}function G5t(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[hb];r&&(n[cm]=r);let i=m5t(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 z5t(e,t){let n=Ft.getSpan(t),r=RR(t);n&&!n.spanContext().isRemote&&qA(n,e),n?.spanContext().isRemote&&e.setAttribute(L$,!0),t===rA&&(r={scope:MA(),isolationScope:Bl()}),r&&NO(e,r.scope,r.isolationScope),HO(e),ct()?.emit("spanStart",e)}function V5t(e){qO(e),ct()?.emit("spanEnd",e)}function W5t(e,t,n){let r=e.spanContext();if(am(r)&&r.traceId===t){if(r.isRemote){let s=vR(e.spanContext());return Wy&&Y.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=vR(r);return Wy&&Y.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=K5t(t,n);return i!==void 0&&(s=s.set(S5t,`${i}`)),r!==void 0&&(s=s.set(y5t,`${r}`)),e==null?{decision:Vy.SamplingDecision.NOT_RECORD,traceState:s}:e===Vy.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(H$,"1")}:{decision:e,traceState:s}}function K5t(e,t){let i=Ft.getSpan(e)?.spanContext()?.traceState||new Cc.TraceState,s=t[uA]||t[ly];return s&&typeof s=="string"&&(i=i.set(PFe,s)),i}function Z5t(e){let t=Ft.getSpan(e);return t&&am(t.spanContext())?t:void 0}var Cc,Vy,L$,AR,Lq,I$,j$,H$,PFe,y5t,S5t,q$,x$,O$,N$,CFe,Wy,HFe,Uq,rje,H5t,xFe,OFe,M$,Fq,jq,wR=v(()=>{Nn();st();Ce();Ce();Cc=Se(fr(),1),Vy=Se(k$(),1),L$="sentry.parentIsRemote",AR="sentry.graphql.operation";Lq="sentry-trace",I$="baggage",j$="sentry.dsc",H$="sentry.sampled_not_recording",PFe="sentry.url",y5t="sentry.sample_rand",S5t="sentry.sample_rate",q$=tl("sentry_scopes"),x$=tl("sentry_fork_isolation_scope"),O$=tl("sentry_fork_set_scope"),N$=tl("sentry_fork_set_isolation_scope"),CFe="_scopeContext";Wy=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;HFe=new Set;Uq=class extends Cc.W3CBaggagePropagator{constructor(){super(),Hq("SentryPropagator"),this._urlMatchesTargetsMap=new uu(100)}inject(t,n,r){if((0,Cc.isTracingSuppressed)(t)){Wy&&Y.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=Ft.getSpan(t),s=i&&k5t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!Db(s,o,this._urlMatchesTargetsMap)){Wy&&Y.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=R5t(n),u=w5t(n),l=Yd.getBaggage(t)||Yd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=BFe(t);if(c){let m=Ib(c);m&&Object.entries(m).forEach(([y,g])=>{!u&&y.startsWith(Lp)||(l=l.setEntry(y,{value:g}))})}!u&&d&&(l=Object.entries(d).reduce((m,[y,g])=>g?m.setEntry(`${Lp}${y}`,{value:g}):m,l)),!u&&f&&f!==db&&(r.set(n,Lq,ky(f,p,h)),a&&r.set(n,"traceparent",Iy(f,p,h))),super.inject(Yd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Lq),s=r.get(n,I$),o=i?Array.isArray(i)?i[0]:i:void 0;return zFe(GFe(t,{sentryTrace:o,baggage:s}))}fields(){return[Lq,I$,"traceparent"]}};rje={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"},H5t=e=>Object.values(rje).includes(e);xFe=1e3,OFe=300,M$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||OFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(ql()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=C7(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(ql()/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&&Wy&&Y.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=nje(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;Wy&&Y.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=ql()+OFe*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=U5t(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=B5t(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)D$(l,c,r);a.spans=c.length>xFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,xFe):c;let u=Nb(o.events);u&&(a.measurements=u),Jj(a)}return r}_flushSentSpanCache(){let t=ql();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))}};Fq=class{constructor(t){Hq("SentrySpanProcessor"),this._exporter=new M$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){z5t(t,n)}onEnd(t){V5t(t),this._exporter.export(t)}},jq=class{constructor(t){this._client=t,Hq("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=Z5t(t),u=c?.spanContext();if(!Os(a))return TR({decision:void 0,context:t,spanAttributes:s});let l=s[cO]||s[gb];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return TR({decision:void 0,context:t,spanAttributes:s});let d=c?W5t(c,n,r):void 0;if(!(!c||u?.isRemote))return TR({decision:d?Vy.SamplingDecision.RECORD_AND_SAMPLED:Vy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=DFe(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 TR({decision:void 0,context:t,spanAttributes:s});let{isolationScope:E}=RR(t)??{},S=u?.traceState?u.traceState.get(j$):void 0,b=S?gm(S):void 0,_=sl(b?.sample_rand)??Do(),[T,A,R]=BO(a,{name:p,attributes:y,normalizedRequest:E?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:d,parentSampleRate:sl(b?.sample_rate)},_),x=`${l}`.toUpperCase();return x==="OPTIONS"||x==="HEAD"?(Wy&&Y.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),TR({decision:Vy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Wy&&Y.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...TR({decision:T?Vy.SamplingDecision.RECORD_AND_SAMPLED:Vy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:R?A:void 0}),attributes:{[tf]:R?A:void 0}})}toString(){return"SentrySampler"}}});var aje,B$,cje=v(()=>{aje=Se(IUe(),1);wR();B$=tje(aje.AsyncLocalStorageContextManager)});function G$(){nl.disable(),nl.setLogger({error:Y.error,warn:Y.warn,info:Y.log,debug:Y.log,verbose:Y.log},po.DEBUG)}var uje=v(()=>{Ce();st()});import*as z$ from"node:diagnostics_channel";function J5t(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&&Vl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Vl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function X5t(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)}}}):Vl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var Y5t,lje,dje=v(()=>{st();Y5t="ChildProcess",lje=(e={})=>({name:Y5t,setup(){z$.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&J5t(t.process,e)}),z$.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&X5t(t.worker,e)})}})});import{execFile as Q5t}from"node:child_process";import{readFile as $5t,readdir as e6t}from"node:fs";import*as Ho from"node:os";import{join as t6t}from"node:path";import{promisify as pje}from"node:util";function o6t(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 a6t(){let e=Ho.platform();switch(e){case"darwin":return h6t();case"linux":return m6t();default:return{name:d6t[e]||e,version:Ho.release()}}}function c6t(){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 u6t(){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 l6t(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 h6t(){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)=>{Q5t("/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 fje(e){return e.split(" ")[0].toLowerCase()}async function m6t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await r6t("/etc"),n=f6t.find(a=>t.includes(a.name));if(!n)return e;let r=t6t("/etc",n.name),i=(await n6t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(fje(a))>=0)||s[0];let o=fje(e.name);e.version=p6t[o]?.(i)}catch{}return e}function g6t(){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 n6t,r6t,i6t,s6t,hje,d6t,f6t,p6t,mje=v(()=>{n6t=pje($5t),r6t=pje(e6t),i6t="Context",s6t=((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=o6t(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 a6t()),n.app&&(s.app=u6t()),n.device&&(s.device=l6t(n.device)),n.culture){let o=c6t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=g6t()),s}return{name:i6t,processEvent(s){return r(s)}}}),hje=s6t;d6t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},f6t=[{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"]}],p6t={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 y6t}from"node:fs";import{createInterface as S6t}from"node:readline";function v6t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function A6t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function R6t(e){return e.lineno!==void 0&&e.lineno>T6t||e.colno!==void 0&&e.colno>_6t}function w6t(e,t){let n=V$.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 k6t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=yje(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=yje(o,t)),n++}return s}function I6t(e,t,n){return new Promise((r,i)=>{let s=y6t(e),o=S6t({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){Sje.set(e,1),Qt&&Y.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 x6t(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"||A6t(c)||R6t(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(Sje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=k6t(o,t);if(a.every(u=>w6t(s,u)))continue;let c=v6t(V$,s,{});i.push(I6t(s,a,c))}if(await Promise.all(i).catch(()=>{Qt&&Y.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&&O6t(s.stacktrace.frames,t,V$);return e}function O6t(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;N6t(r.lineno,r,t,i)}}function gje(e){delete e.pre_context,delete e.context_line,delete e.post_context}function N6t(e,t,n,r){if(t.lineno===void 0||r===void 0){Qt&&Y.error("Cannot resolve context for frame with no lineno or file contents");return}t.pre_context=[];for(let s=Eje(e,n);s{st();uf();V$=new uu(10),Sje=new uu(20),E6t=7,b6t="ContextLines",_6t=1e3,T6t=1e4;P6t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:E6t;return{name:b6t,processEvent(n){return x6t(n,t)}}}),_je=P6t});async function Bq(){if(qq===void 0)try{qq=!!(await import("node:inspector")).url()}catch{qq=!1}return qq}var qq,W$=v(()=>{});function Aje(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 vje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function Gq(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||vje(e)&&vje(t)}var RN,K$=v(()=>{RN="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as C6t}from"node:worker_threads";function Rje(...e){Y.log("[LocalVariables]",...e)}var M6t,wje,kje=v(()=>{st();W$();K$();M6t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";wje=((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=>{Rje("Worker error",a)}),o.once("exit",a=>{Rje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await Bq()){Y.warn("Local variables capture has been disabled because the debugger was already enabled");return}let a={...e,debug:Y.isEnabled()};r().then(()=>{try{i(a)}catch(c){Y.error("Failed to start worker",c)}},c=>{Y.error("Failed to start inspector",c)})},processEvent(s,o){return n(s,o)}}})});function Ije(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function D6t(e,t){if(t!==void 0)return Ije(e(t,1))}function xje(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 Z$,L6t,U6t,Oje,Nje=v(()=>{st();lR();W$();K$();Z$=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}=xje(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)}},L6t="LocalVariables",U6t=((e={},t)=>{let n=new uu(20),r,i=!1;function s(u){let l=Ije(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 Bq()){Y.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await Z$.create(t),p=(m,{params:{reason:y,data:g,callFrames:E}},S)=>{if(y!=="exception"&&y!=="promiseRejection"){S();return}r?.();let b=D6t(m,g.description);if(b==null){S();return}let{add:_,next:T}=xje(A=>{n.set(b,A),S()});for(let A=0;AC.type==="local"),P=k.className==="global"||!k.className?x:`${k.className}.${x}`;if(N?.object.objectId===void 0)_(C=>{C[A]={function:P},T(C)});else{let C=N.object.objectId;_(F=>f.getLocalVariables(C,V=>{F[A]={function:P,vars:V},T(F)}))}}T([])},h=e.captureAllExceptions!==!1;if(f.configureAndConnect((m,y)=>p(l.stackParser,m,y),h),h){let m=e.maxExceptionsPerSecond||50;r=Aje(m,()=>{Y.log("Local variables rate-limit lifted."),f.setPauseOnExceptions(!0)},y=>{Y.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${y} seconds.`),f.setPauseOnExceptions(!1)})}i=!0}catch(f){Y.log("The `LocalVariables` integration failed to start.",f)}}return{name:L6t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),Oje=U6t});var Pje,Cje=v(()=>{lR();kje();Nje();Pje=(e={})=>lf.major<19?Oje(e):wje(e)});function wN(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function Dje(){return wN()?!1:Am>=21||Am===20&&mN>=6||Am===18&&mN>=19?!0:(Mje||(Mje=!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 Mje,zq=v(()=>{st();lR()});import{existsSync as F6t,readFileSync as Uje}from"node:fs";import{dirname as j6t,join as Fje}from"node:path";function G6t(){try{return Z.cache?Object.keys(Z.cache):[]}catch{return[]}}function z6t(){return{...q6t,...K6t(),...wN()?V6t():{}}}function V6t(){let e=Z.main?.paths||[],t=G6t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=j6t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=Fje(a,"package.json");if(r.add(a),!F6t(c))return o();try{let u=JSON.parse(Uje(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function Lje(){return Y$||(Y$=z6t()),Y$}function W6t(){try{let e=Fje(process.cwd(),"package.json");return JSON.parse(Uje(e,"utf8"))}catch{return{}}}function K6t(){let e=W6t();return{...e.dependencies,...e.devDependencies}}var Y$,H6t,q6t,B6t,jje,Hje=v(()=>{zq();H6t="Modules",q6t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,B6t=(()=>({name:H6t,processEvent(e){return e.modules={...e.modules,...Lje()},e},getModules:Lje})),jje=B6t});function kN(e){xs(()=>{console.error(e)});let t=ct();if(t===void 0){Qt&&Y.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:Z6t;t.close(r).then(i=>{i||Qt&&Y.warn("We reached the timeout for emptying the request buffer, still exiting now!"),global.process.exit(1)},i=>{Qt&&Y.error(i)})}var Z6t,J$=v(()=>{st();uf();Z6t=2e3});import{isMainThread as Y6t}from"worker_threads";function X6t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=kN;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&&Y.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),kN(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 J6t,qje,Bje=v(()=>{st();uf();J$();J6t="OnUncaughtException",qje=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:J6t,setup(n){Y6t&&global.process.on("uncaughtException",X6t(n,t))}}}});function t8t(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 n8t(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 r8t(e,t){let n=t8t(t);return e.some(r=>n8t(r,n))}function i8t(e,t){return function(r,i){if(ct()!==e||r8t(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"}})}),s8t(r,t.mode)}}function s8t(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)}),kN(e))}var Q6t,$6t,e8t,Gje,zje=v(()=>{st();J$();Q6t="OnUnhandledRejection",$6t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],e8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...$6t,...e.ignore??[]]};return{name:Q6t,setup(n){global.process.on("unhandledRejection",i8t(n,t))}}}),Gje=e8t});var o8t,Vje,Wje=v(()=>{st();o8t="ProcessSession",Vje=()=>({name:o8t,setupOnce(){Qj(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&VO()})}})});import*as Kje from"node:http";function c8t(e,t){let n=u8t(t.sidecarUrl);if(!n)return;let r=0;e.on("beforeEnvelope",i=>{if(r>3){Y.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let s=jO(i);VA(()=>{let o=Kje.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++,Y.warn("[Spotlight] Failed to send envelope to Spotlight Sidecar")}),o.write(s),o.end()})})}function u8t(e){try{return new URL(`${e}`)}catch{Y.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var X$,a8t,Zje,Yje=v(()=>{st();X$="Spotlight",a8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:X$,setup(n){try{process.env.NODE_ENV&&process.env.NODE_ENV!=="development"&&Y.warn("[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?")}catch{}c8t(n,t)}}}),Zje=a8t});import*as Jje from"node:util";function d8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:Jje.getSystemErrorMap().has(e.errno)}var l8t,Xje,Qje=v(()=>{l8t="NodeSystemError";Xje=(e={})=>({name:l8t,processEvent:(t,n,r)=>{if(!d8t(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 Q$ from"node:http";var Zp,Vq,$je=v(()=>{Zp=Symbol("AgentBaseInternalState"),Vq=class extends Q$.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 Q$.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 Wq(...e){Y.log("[https-proxy-agent:parse-proxy-response]",...e)}function eHe(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(),Wq("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),Wq("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){Wq("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 b=S.indexOf(":");if(b===-1)return e.destroy(),n(new Error(`Invalid header from proxy CONNECT response: "${S}"`));let _=S.slice(0,b).toLowerCase(),T=S.slice(b+1).trimStart(),A=E[_];typeof A=="string"?E[_]=[A,T]:Array.isArray(A)?A.push(T):E[_]=T}Wq("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 tHe=v(()=>{st()});import*as km from"node:net";import*as $$ from"node:tls";function IN(...e){Y.log("[https-proxy-agent]",...e)}function f8t(e){e.resume()}function nHe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var xN,rHe=v(()=>{st();$je();tHe();xN=class extends Vq{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??{},IN("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?nHe(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:"){IN("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=$$.connect({...this.connectOpts,servername:f&&km.isIP(f)?void 0:f})}else IN("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(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=eHe(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",f8t),n.secureEndpoint){IN("Upgrading socket connection to TLS");let f=n.servername||n.host;return $$.connect({...nHe(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=>{IN("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};xN.__initStatic()});import*as p8t from"node:http";import*as h8t from"node:https";import{Readable as m8t}from"node:stream";import{createGzip as g8t}from"node:zlib";function S8t(e){return new m8t({read(){this.push(e),this.push(null)}})}function iHe(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=E8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?h8t:p8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new xN(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=b8t(e,e.httpModule??i,o);return ZO(e,a)}function E8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function b8t(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=S8t(u.body),p={...e.headers};u.body.length>y8t&&(p["content-encoding"]="gzip",f=f.pipe(g8t()));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 y8t,sHe=v(()=>{st();rHe();y8t=1024*32});function oHe(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 aHe=v(()=>{st()});import{posix as _8t,sep as T8t}from"node:path";function cHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function uHe(e=process.argv[1]?F7(process.argv[1]):process.cwd(),t=T8t==="\\"){let n=t?cHe(e):e;return r=>{if(!r)return;let i=t?cHe(r):r,{dir:s,base:o,ext:a}=_8t.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 lHe=v(()=>{st()});function dHe(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 fHe,pHe=v(()=>{st();lHe();fHe=Sj(RQ(uHe()))});import*as hHe from"node:os";import{threadId as v8t,isMainThread as A8t}from"worker_threads";var mHe,R8t,Kq,gHe=v(()=>{Ce();mHe=Se(Yt(),1);st();wR();uf();R8t=6e4,Kq=class extends YO{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||hHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,mHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),Mb(r,"node"),Y.log(`Initializing Sentry: process: ${process.pid}, thread: ${A8t?"main":`worker-${v8t}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{YA(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=Pn,r=Ft.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&&Y.log("Flushing client reports based on interval."),this._flushOutcomes()},t.clientReportFlushInterval??R8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){O7(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?XFe(this,t):[void 0,void 0]}}});import*as SHe from"module";function eee(){if(Dje()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,yHe.createAddHookMessageChannel)();SHe.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:e,include:[]},transferList:[e]})}catch(e){Y.warn("Failed to register 'import-in-the-middle' hook",e)}}}var yHe,EHe=v(()=>{st();yHe=Se(nX(),1);zq()});function Zq(){return[cH(),oH(),uH(),lH(),Xje(),B7(),fH(),yUe(),AUe(),qje(),Gje(),_je(),Pje(),hje(),lje(),Vje(),jje()]}function tee(e={}){return w8t(e,Zq)}function w8t(e={},t){let n=k8t(e,t);n.debug===!0&&(Qt?Y.enable():xs(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),n.registerEsmLoaderHooks!==!1&&eee(),eje(),Un().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===X$)&&n.integrations.push(Zje({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),Mb(n,"node-core");let i=new Kq(n);return Un().setClient(i),i.init(),Y.log(`SDK initialized from ${wN()?"CommonJS":"ESM"}`),i.startClientReportTracking(),O8t(),UFe(i),$Fe(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function nee(){if(!Qt)return;let e=qFe(),t=["SentryContextManager","SentryPropagator"];Os()&&t.push("SentrySpanProcessor");for(let n of t)e.includes(n)||Y.error(`You have to set up the ${n}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);e.includes("SentrySampler")||Y.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 k8t(e,t){let n=I8t(e.release),r=oHe(e.spotlight),i=x8t(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??iHe,stackParser:yX(e.stackParser||fHe),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:y7({defaultIntegrations:a,integrations:o})}}function I8t(e){if(e!==void 0)return e;let t=dHe();if(t!==void 0)return t}function x8t(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 O8t(){if(XA(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=CO(e,t);Un().setPropagationContext(n)}}var bHe=v(()=>{st();wR();uf();dje();mje();Tje();SUe();Cje();Hje();RUe();Bje();zje();Wje();Yje();Qje();sHe();zq();aHe();pHe();gHe();EHe()});function Dr(e,t){e.setAttribute(At,t)}var _He=v(()=>{st()});function ON(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 THe=v(()=>{});var sr=v(()=>{xQ();LH();CQ();UQ();cje();uje();MH();bHe();_He();THe();lR()});function C8t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&Yq)}function M8t(e={}){return{disableOutgoingRequestInstrumentation:Yq,ignoreOutgoingRequestHook:n=>{let r=ON(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=ON(r);if(i.startsWith("data:")){let s=QA(i);n.setAttribute("http.url",s),n.setAttribute(wy,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 AHe,ree,vHe,Yq,N8t,P8t,RHe,wHe=v(()=>{Ce();AHe=Se(lCe(),1);st();sr();ree="Http",vHe="@opentelemetry_sentry-patched/instrumentation-http",Yq=lf.major===22&&lf.minor>=12||lf.major===23&&lf.minor>=2||lf.major>=24,N8t=rt(`${ree}.sentry`,e=>new Bb(e)),P8t=rt(ree,e=>{let t=new AHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=nl.createComponentLogger({namespace:vHe}),t.instrumentationName=vHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});RHe=(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=dN(r),o=fN(i),a=t&&!n;return{name:ree,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=C8t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:Yq||!u,createSpansForOutgoingRequests:Yq,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=ON(f);if(p.startsWith("data:")){let h=QA(p);d.setAttribute("http.url",h),d.setAttribute(wy,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(N8t(l),u){let d=M8t(e);P8t(d)}},processEvent(c){return o.processEvent(c)}}}});var kHe=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 xHe=w(Xq=>{"use strict";Object.defineProperty(Xq,"__esModule",{value:!0});Xq.UndiciInstrumentation=void 0;var iee=Z("diagnostics_channel"),D8t=Z("url"),NN=Yt(),ll=(Ce(),ke(Ye)),Jq=fr(),Vs=(Nn(),ke(Mr)),IHe=kHe(),see=class extends NN.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(IHe.PACKAGE_NAME,IHe.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:ll.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)iee.subscribe?.(t,n),o=()=>iee.unsubscribe?.(t,n);else{let a=iee.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 D8t.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,NN.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=ll.context.active(),g=ll.trace.getSpan(y),E;n.requireParentforSpans&&(!g||!ll.trace.isSpanContextValid(g.spanContext()))?E=ll.trace.wrapSpanContext(ll.INVALID_SPAN_CONTEXT):E=this.tracer.startSpan(c==="_OTHER"?"HTTP":c,{kind:ll.SpanKind.CLIENT,attributes:u},y),(0,NN.safeExecuteInTheMiddle)(()=>n.requestHook?.(E,t),T=>T&&this._diag.error("caught requestHook error: ",T),!0);let S=ll.trace.setSpan(ll.context.active(),E),b={};ll.propagation.inject(S,b);let _=Object.entries(b);for(let T=0;T<_.length;T++){let[A,R]=_[T];typeof t.addHeader=="function"?t.addHeader(A,R):typeof t.headers=="string"?t.headers+=`${A}: ${R}\r -`:Array.isArray(t.headers)&&t.headers.push(A,R)}this._recordFromReq.set(t,{span:E,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,NN.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?ll.SpanStatusCode.ERROR:ll.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:ll.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,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"}};Xq.UndiciInstrumentation=see});var OHe=w(Qq=>{"use strict";Object.defineProperty(Qq,"__esModule",{value:!0});Qq.UndiciInstrumentation=void 0;var L8t=xHe();Object.defineProperty(Qq,"UndiciInstrumentation",{enumerable:!0,get:function(){return L8t.UndiciInstrumentation}})});function NHe(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}function H8t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function q8t(e={}){return{requireParentforSpans:!1,ignoreRequestHook:n=>{let r=NHe(n.origin,n.path),i=e.ignoreOutgoingRequests;return!!(i&&r&&i(r))},startSpanHook:n=>{let r=NHe(n.origin,n.path);if(r.startsWith("data:")){let i=QA(r);return{[At]:"auto.http.otel.node_fetch","http.url":i,[wy]:i,[Gl]:`${n.method||"GET"} ${i}`}}return{[At]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var PHe,CHe,U8t,F8t,j8t,MHe,DHe=v(()=>{PHe=Se(OHe(),1);st();sr();CHe="NodeFetch",U8t=rt(CHe,PHe.UndiciInstrumentation,e=>q8t(e)),F8t=rt(`${CHe}.sentry`,Gb,e=>e),j8t=((e={})=>({name:"NodeFetch",setupOnce(){H8t(e,ct()?.getOptions())&&U8t(e),F8t(e)}})),MHe=j8t});var $q=w(PN=>{"use strict";Object.defineProperty(PN,"__esModule",{value:!0});PN.ExpressLayerType=void 0;var B8t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(B8t=PN.ExpressLayerType||(PN.ExpressLayerType={}))});var eB=w(CN=>{"use strict";Object.defineProperty(CN,"__esModule",{value:!0});CN.AttributeNames=void 0;var G8t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(G8t=CN.AttributeNames||(CN.AttributeNames={}))});var oee=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 FHe=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 aee=$q(),xR=eB(),Zb=oee(),z8t=(e,t)=>(Array.isArray(e[Zb._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,Zb._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[Zb._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=z8t;var V8t=(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=V8t;var W8t=(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]:aee.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]:aee.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[xR.AttributeNames.EXPRESS_NAME]:t.name,[xR.AttributeNames.EXPRESS_TYPE]:aee.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=W8t;var K8t=(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")},Z8t=(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(K8t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=Z8t;var Y8t=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=Y8t;var J8t=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>LHe(n)||"").join(","):LHe(t)};Ws.getLayerPath=J8t;var LHe=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[Zb._LAYERS_STORE_PROPERTY])?e[Zb._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=UHe;function X8t(e){let t=Array.isArray(e[Zb._LAYERS_STORE_PROPERTY])?e[Zb._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)||Q8t(r))?r:void 0}Ws.getActualMatchedRoute=X8t;function Q8t(e){return e.includes(":")||e.includes("*")}});var jHe=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 zHe=w(nB=>{"use strict";Object.defineProperty(nB,"__esModule",{value:!0});nB.ExpressInstrumentation=void 0;var HHe=fr(),du=(Ce(),ke(Ye)),qHe=$q(),BHe=eB(),Yp=FHe(),GHe=jHe(),NR=Yt(),$8t=(Nn(),ke(Mr)),tB=oee(),cee=class extends NR.InstrumentationBase{constructor(t={}){super(GHe.PACKAGE_NAME,GHe.PACKAGE_VERSION,t)}init(){return[new NR.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,NR.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,NR.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,NR.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,Yp.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,Yp.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,Yp.getLayerPath)(s))}return a}}}_applyPatch(t,n){let r=this;t[tB.kLayerPatched]!==!0&&(t[tB.kLayerPatched]=!0,this._wrap(t,"handle",i=>{if(i.length===4)return i;let s=function(o,a){let{isLayerPathStored:c}=(0,Yp.storeLayerPath)(o,n),u=(0,Yp.getConstructedRoute)(o),l=(0,Yp.getActualMatchedRoute)(o),d={[$8t.ATTR_HTTP_ROUTE]:l},f=(0,Yp.getLayerMetadata)(u,t,n),p=f.attributes[BHe.AttributeNames.EXPRESS_TYPE],h=(0,HHe.getRPCMetadata)(du.context.active());if(h?.type===HHe.RPCType.HTTP&&(h.route=l),(0,Yp.isLayerIgnored)(f.name,p,r.getConfig()))return p===qHe.ExpressLayerType.MIDDLEWARE&&o[tB._LAYERS_STORE_PROPERTY].pop(),i.apply(this,arguments);if(du.trace.getSpan(du.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=du.context.active(),E=du.trace.setSpan(g,y),{requestHook:S}=r.getConfig();S&&(0,NR.safeExecuteInTheMiddle)(()=>S(y,{request:o,layerType:p,route:u}),R=>{R&&du.diag.error("express instrumentation: request hook failed",R)},!0);let b=!1;f.attributes[BHe.AttributeNames.EXPRESS_TYPE]===qHe.ExpressLayerType.ROUTER&&(y.end(),b=!0,E=g);let _=()=>{b===!1&&(b=!0,y.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(!b&&x){let[F,V]=(0,Yp.asErrorAndMessage)(R);y.recordException(F),y.setStatus({code:du.SpanStatusCode.ERROR,message:V})}b===!1&&(b=!0,o.res?.removeListener("finish",_),y.end()),!(o.route&&x)&&c&&o[tB._LAYERS_STORE_PROPERTY].pop();let k=T[A],N=du.context.active(),P=du.trace.getSpan(g),C=P?du.trace.setSpan(N,P):N;return du.context.bind(C,k).apply(this,arguments)});try{return du.context.bind(E,i).apply(this,arguments)}catch(R){let[x,k]=(0,Yp.asErrorAndMessage)(R);throw y.recordException(x),y.setStatus({code:du.SpanStatusCode.ERROR,message:k}),R}finally{b||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 du.diag.error("express instrumentation: error calling span name rewrite hook",i),n}}};nB.ExpressInstrumentation=cee});var VHe=w(Ky=>{"use strict";Object.defineProperty(Ky,"__esModule",{value:!0});Ky.AttributeNames=Ky.ExpressLayerType=Ky.ExpressInstrumentation=void 0;var eJt=zHe();Object.defineProperty(Ky,"ExpressInstrumentation",{enumerable:!0,get:function(){return eJt.ExpressInstrumentation}});var tJt=$q();Object.defineProperty(Ky,"ExpressLayerType",{enumerable:!0,get:function(){return tJt.ExpressLayerType}});var nJt=eB();Object.defineProperty(Ky,"AttributeNames",{enumerable:!0,get:function(){return nJt.AttributeNames}})});var yo,Yb=v(()=>{yo=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function rJt(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 iJt(e,t){if(vn()===Bl())return yo&&Y.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 WHe,KHe,ZHe,sJt,YHe,JHe=v(()=>{WHe=Se(VHe(),1);st();sr();Yb();KHe="Express";ZHe=rt(KHe,()=>new WHe.ExpressInstrumentation({requestHook:e=>rJt(e),spanNameHook:(e,t)=>iJt(e,t)})),sJt=(()=>({name:KHe,setupOnce(){ZHe()}})),YHe=sJt});var XHe=w(MN=>{"use strict";Object.defineProperty(MN,"__esModule",{value:!0});MN.SeverityNumber=void 0;var oJt;(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"})(oJt=MN.SeverityNumber||(MN.SeverityNumber={}))});var sB=w(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.NOOP_LOGGER=PR.NoopLogger=void 0;var iB=class{emit(t){}};PR.NoopLogger=iB;PR.NOOP_LOGGER=new iB});var QHe=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 aJt(e,t,n){return r=>r===e?t:n}Jp.makeGetter=aJt;Jp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var uee=w(CR=>{"use strict";Object.defineProperty(CR,"__esModule",{value:!0});CR.NOOP_LOGGER_PROVIDER=CR.NoopLoggerProvider=void 0;var cJt=sB(),oB=class{getLogger(t,n,r){return new cJt.NoopLogger}};CR.NoopLoggerProvider=oB;CR.NOOP_LOGGER_PROVIDER=new oB});var $He=w(aB=>{"use strict";Object.defineProperty(aB,"__esModule",{value:!0});aB.ProxyLogger=void 0;var uJt=sB(),lee=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):uJt.NOOP_LOGGER}};aB.ProxyLogger=lee});var eqe=w(cB=>{"use strict";Object.defineProperty(cB,"__esModule",{value:!0});cB.ProxyLoggerProvider=void 0;var lJt=uee(),dJt=$He(),dee=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new dJt.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:lJt.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)}};cB.ProxyLoggerProvider=dee});var nqe=w(uB=>{"use strict";Object.defineProperty(uB,"__esModule",{value:!0});uB.LogsAPI=void 0;var Yl=QHe(),fJt=uee(),tqe=eqe(),fee=class e{constructor(){this._proxyLoggerProvider=new tqe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Yl._global[Yl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Yl._global[Yl.GLOBAL_LOGS_API_KEY]=(0,Yl.makeGetter)(Yl.API_BACKWARDS_COMPATIBILITY_VERSION,t,fJt.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Yl._global[Yl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Yl._global,Yl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Yl._global[Yl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new tqe.ProxyLoggerProvider}};uB.LogsAPI=fee});var pee=w(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.logs=Xp.NoopLogger=Xp.NOOP_LOGGER=Xp.SeverityNumber=void 0;var pJt=XHe();Object.defineProperty(Xp,"SeverityNumber",{enumerable:!0,get:function(){return pJt.SeverityNumber}});var rqe=sB();Object.defineProperty(Xp,"NOOP_LOGGER",{enumerable:!0,get:function(){return rqe.NOOP_LOGGER}});Object.defineProperty(Xp,"NoopLogger",{enumerable:!0,get:function(){return rqe.NoopLogger}});var hJt=nqe();Xp.logs=hJt.LogsAPI.getInstance()});var iqe=w(MR=>{"use strict";Object.defineProperty(MR,"__esModule",{value:!0});MR.disableInstrumentations=MR.enableInstrumentations=void 0;function mJt(e,t,n,r){for(let i=0,s=e.length;it.disable())}MR.disableInstrumentations=gJt});var aqe=w(lB=>{"use strict";Object.defineProperty(lB,"__esModule",{value:!0});lB.registerInstrumentations=void 0;var sqe=(Ce(),ke(Ye)),yJt=pee(),oqe=iqe();function SJt(e){let t=e.tracerProvider||sqe.trace.getTracerProvider(),n=e.meterProvider||sqe.metrics.getMeterProvider(),r=e.loggerProvider||yJt.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,oqe.enableInstrumentations)(i,t,n,r),()=>{(0,oqe.disableInstrumentations)(i)}}lB.registerInstrumentations=SJt});var gqe=w(dB=>{"use strict";Object.defineProperty(dB,"__esModule",{value:!0});dB.satisfies=void 0;var yee=(Ce(),ke(Ye)),fqe=/^(?: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-]+)*))?$/,EJt=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,bJt={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function _Jt(e,t,n){if(!TJt(e))return yee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=wJt(e);if(!r)return!1;let i=[],s=pqe(r,t,i,n);return s&&!n?.includePrerelease?AJt(r,i):s}dB.satisfies=_Jt;function TJt(e){return typeof e=="string"&&fqe.test(e)}function pqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(hee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=KJt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!hee(e,s,n,r))return!1;return!0}return hee(e,t,n,r)}function hee(e,t,n,r){if(t=RJt(t,r),t.includes(" "))return pqe(e,t,n,r);{let i=kJt(t);return n.push(i),vJt(e,i)}}function vJt(e,t){if(t.invalid)return!1;if(!t.version||gee(t.version))return!0;let n=uqe(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=uqe(r,i)}return bJt[t.op]?.includes(n)}function AJt(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function RJt(e,t){return e=e.trim(),e=VJt(e,t),e=zJt(e),e=WJt(e,t),e=e.trim(),e}function Mc(e){return!e||e.toLowerCase()==="x"||e==="*"}function wJt(e){let t=e.match(fqe);if(!t){yee.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 kJt(e){if(!e)return{};let t=e.match(EJt);if(!t)return yee.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 gee(e){return e==="*"||e==="x"||e==="X"}function cqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function IJt(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 xJt(e,t){if(gee(e)||gee(t))return 0;let[n,r]=IJt(cqe(e),cqe(t));return n>r?1:n)?=?)",lqe=`(?:${mqe}|${OJt})`,PJt=`(?:-(${lqe}(?:\\.${lqe})*))`,dqe=`${hqe}+`,CJt=`(?:\\+(${dqe}(?:\\.${dqe})*))`,mee=`${mqe}|x|X|\\*`,DN=`[v=\\s]*(${mee})(?:\\.(${mee})(?:\\.(${mee})(?:${PJt})?${CJt}?)?)?`,MJt=`^${NJt}\\s*${DN}$`,DJt=new RegExp(MJt),LJt=`^\\s*(${DN})\\s+-\\s+(${DN})\\s*$`,UJt=new RegExp(LJt),FJt="(?:~>?)",jJt=`^${FJt}${DN}$`,HJt=new RegExp(jJt),qJt="(?:\\^)",BJt=`^${qJt}${DN}$`,GJt=new RegExp(BJt);function zJt(e){let t=HJt;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 VJt(e,t){let n=GJt,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 WJt(e,t){let n=DJt;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 KJt(e,t){let n=UJt;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 See=w(la=>{"use strict";Object.defineProperty(la,"__esModule",{value:!0});la.massUnwrap=la.unwrap=la.massWrap=la.wrap=void 0;var Dc=console.error.bind(console);function LN(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 ZJt=(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 LN(i,"__original",r),LN(i,"__unwrap",()=>{e[t]===i&&LN(e,t,r)}),LN(i,"__wrapped",!0),LN(e,t,i),i};la.wrap=ZJt;var YJt=(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,la.wrap)(r,i,n)})})};la.massWrap=YJt;var JJt=(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}};la.unwrap=JJt;var XJt=(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,la.unwrap)(n,r)})})};la.massUnwrap=XJt;function UN(e){e&&e.logger&&(typeof e.logger!="function"?Dc("new logger isn't a function, not replacing"):Dc=e.logger)}la.default=UN;UN.wrap=la.wrap;UN.massWrap=la.massWrap;UN.unwrap=la.unwrap;UN.massUnwrap=la.massUnwrap});var yqe=w(pB=>{"use strict";Object.defineProperty(pB,"__esModule",{value:!0});pB.InstrumentationAbstract=void 0;var Eee=(Ce(),ke(Ye)),QJt=pee(),fB=See(),bee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Eee.diag.createComponentLogger({namespace:t}),this._tracer=Eee.trace.getTracer(t,n),this._meter=Eee.metrics.getMeter(t,n),this._logger=QJt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=fB.wrap;_unwrap=fB.unwrap;_massWrap=fB.massWrap;_massUnwrap=fB.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)}}};pB.InstrumentationAbstract=bee});var Sqe=w(Zy=>{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});Zy.ModuleNameTrie=Zy.ModuleNameSeparator=void 0;Zy.ModuleNameSeparator="/";var hB=class{hooks=[];children=new Map},_ee=class{_trie=new hB;_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 hB,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=_ee});var bqe=w(mB=>{"use strict";Object.defineProperty(mB,"__esModule",{value:!0});mB.RequireInTheMiddleSingleton=void 0;var $Jt=_b(),Eqe=Z("path"),Tee=Sqe(),eXt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),vee=class e{_moduleNameTrie=new Tee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new $Jt.Hook(null,{internals:!0},(t,n,r)=>{let i=tXt(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 eXt?new e:this._instance=this._instance??new e}};mB.RequireInTheMiddleSingleton=vee;function tXt(e){return Eqe.sep!==Tee.ModuleNameSeparator?e.split(Eqe.sep).join(Tee.ModuleNameSeparator):e}});var Rqe=w(FN=>{var _qe=[],Aee=new WeakMap,Tqe=new WeakMap,vqe=new Map,Aqe=[],nXt={set(e,t,n){let r=Aee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=Tqe.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=Aee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function rXt(e,t,n,r,i){vqe.set(e,i),Aee.set(t,n),Tqe.set(t,r);let s=new Proxy(t,nXt);_qe.forEach(o=>o(e,s,i)),Aqe.push([e,s,i])}FN.register=rXt;FN.importHooks=_qe;FN.specifiers=vqe;FN.toHook=Aqe});var xqe=w((xCr,LR)=>{var wqe=Z("path"),iXt=gO(),{fileURLToPath:sXt}=Z("url"),{MessageChannel:oXt}=Z("worker_threads"),{isBuiltin:Ree}=Z("module");Ree||(Ree=()=>!0);var{importHooks:wee,specifiers:aXt,toHook:cXt}=Rqe();function kqe(e){wee.push(e),cXt.forEach(([t,n,r])=>e(t,n,r))}function Iqe(e){let t=wee.indexOf(e);t>-1&&wee.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 kee;function uXt(){let{port1:e,port2:t}=new oXt,n=0,r;kee=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 jN(e,t,n){if(!(this instanceof jN))return new jN(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;kee&&Array.isArray(e)&&kee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);Ree(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=sXt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=iXt(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(aXt.get(a)))DR(n,s,i,l);else if(r){let f=i+wqe.sep+wqe.relative(l,u);DR(n,s,f,l)}}else d===o&&DR(n,s,o,l);else DR(n,s,i,l)},kqe(this._iitmHook)}jN.prototype.unhook=function(){Iqe(this._iitmHook)};LR.exports=jN;LR.exports.Hook=jN;LR.exports.addHook=kqe;LR.exports.removeHook=Iqe;LR.exports.createAddHookMessageChannel=uXt});var Iee=w(Yy=>{"use strict";Object.defineProperty(Yy,"__esModule",{value:!0});Yy.isWrapped=Yy.safeExecuteInTheMiddleAsync=Yy.safeExecuteInTheMiddle=void 0;function lXt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Yy.safeExecuteInTheMiddle=lXt;async function dXt(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}}Yy.safeExecuteInTheMiddleAsync=dXt;function fXt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Yy.isWrapped=fXt});var Pqe=w(gB=>{"use strict";Object.defineProperty(gB,"__esModule",{value:!0});gB.InstrumentationBase=void 0;var HN=Z("path"),Oqe=Z("util"),pXt=gqe(),xee=See(),hXt=yqe(),mXt=bqe(),gXt=xqe(),qN=(Ce(),ke(Ye)),yXt=_b(),SXt=Z("fs"),EXt=Iee(),Oee=class extends hXt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=mXt.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,EXt.isWrapped)(t[n])&&this._unwrap(t,n),Oqe.types.isProxy(t)){let i=(0,xee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,xee.wrap)(t,n,r)};_unwrap=(t,n)=>Oqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,xee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{qN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){qN.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{qN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){qN.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=Z.resolve(n);Z.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,SXt.readFileSync)(HN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{qN.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 Nqe(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=HN.normalize(r);return o.filter(u=>u.name===a&&Nqe(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&&HN.isAbsolute(a)){let u=HN.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=HN.isAbsolute(t.name)?new yXt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new gXt.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}};gB.InstrumentationBase=Oee;function Nqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,pXt.satisfies)(t,r,{includePrerelease:n}))}});var Cqe=w(yB=>{"use strict";Object.defineProperty(yB,"__esModule",{value:!0});yB.normalize=void 0;var bXt=Z("path");Object.defineProperty(yB,"normalize",{enumerable:!0,get:function(){return bXt.normalize}})});var Mqe=w(UR=>{"use strict";Object.defineProperty(UR,"__esModule",{value:!0});UR.normalize=UR.InstrumentationBase=void 0;var _Xt=Pqe();Object.defineProperty(UR,"InstrumentationBase",{enumerable:!0,get:function(){return _Xt.InstrumentationBase}});var TXt=Cqe();Object.defineProperty(UR,"normalize",{enumerable:!0,get:function(){return TXt.normalize}})});var Nee=w(FR=>{"use strict";Object.defineProperty(FR,"__esModule",{value:!0});FR.normalize=FR.InstrumentationBase=void 0;var Dqe=Mqe();Object.defineProperty(FR,"InstrumentationBase",{enumerable:!0,get:function(){return Dqe.InstrumentationBase}});Object.defineProperty(FR,"normalize",{enumerable:!0,get:function(){return Dqe.normalize}})});var Lqe=w(SB=>{"use strict";Object.defineProperty(SB,"__esModule",{value:!0});SB.InstrumentationNodeModuleDefinition=void 0;var Pee=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}};SB.InstrumentationNodeModuleDefinition=Pee});var Uqe=w(EB=>{"use strict";Object.defineProperty(EB,"__esModule",{value:!0});EB.InstrumentationNodeModuleFile=void 0;var vXt=Nee(),Cee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,vXt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};EB.InstrumentationNodeModuleFile=Cee});var Fqe=w(Jb=>{"use strict";Object.defineProperty(Jb,"__esModule",{value:!0});Jb.semconvStabilityFromStr=Jb.SemconvStability=void 0;var bB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(bB=Jb.SemconvStability||(Jb.SemconvStability={}));function AXt(e,t){let n=bB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=bB.DUPLICATE;break}else i.toLowerCase()===e&&(n=bB.STABLE);return n}Jb.semconvStabilityFromStr=AXt});var Hqe=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 RXt=aqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return RXt.registerInstrumentations}});var wXt=Nee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return wXt.InstrumentationBase}});var kXt=Lqe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return kXt.InstrumentationNodeModuleDefinition}});var IXt=Uqe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return IXt.InstrumentationNodeModuleFile}});var Mee=Iee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return Mee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Mee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Mee.safeExecuteInTheMiddleAsync}});var jqe=Fqe();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((HCr,xXt)=>{xXt.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 Gqe=w(Xb=>{"use strict";Object.defineProperty(Xb,"__esModule",{value:!0});Xb.range=Xb.balanced=void 0;var OXt=(e,t,n)=>{let r=e instanceof RegExp?Bqe(e,n):e,i=t instanceof RegExp?Bqe(t,n):t,s=r!==null&&i!=null&&(0,Xb.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)}};Xb.balanced=OXt;var Bqe=(e,t)=>{let n=t.match(e);return n?n[0]:null},NXt=(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};Xb.range=NXt});var Jqe=w(jR=>{"use strict";Object.defineProperty(jR,"__esModule",{value:!0});jR.EXPANSION_MAX=void 0;jR.expand=zXt;var zqe=Gqe(),Vqe="\0SLASH"+Math.random()+"\0",Wqe="\0OPEN"+Math.random()+"\0",Lee="\0CLOSE"+Math.random()+"\0",Kqe="\0COMMA"+Math.random()+"\0",Zqe="\0PERIOD"+Math.random()+"\0",PXt=new RegExp(Vqe,"g"),CXt=new RegExp(Wqe,"g"),MXt=new RegExp(Lee,"g"),DXt=new RegExp(Kqe,"g"),LXt=new RegExp(Zqe,"g"),UXt=/\\\\/g,FXt=/\\{/g,jXt=/\\}/g,HXt=/\\,/g,qXt=/\\\./g;jR.EXPANSION_MAX=1e5;function Dee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function BXt(e){return e.replace(UXt,Vqe).replace(FXt,Wqe).replace(jXt,Lee).replace(HXt,Kqe).replace(qXt,Zqe)}function GXt(e){return e.replace(PXt,"\\").replace(CXt,"{").replace(MXt,"}").replace(DXt,",").replace(LXt,".")}function Yqe(e){if(!e)return[""];let t=[],n=(0,zqe.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=Yqe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function zXt(e,t={}){if(!e)return[];let{max:n=jR.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),BN(BXt(e),n,!0).map(GXt)}function VXt(e){return"{"+e+"}"}function WXt(e){return/^-?0\d/.test(e)}function KXt(e,t){return e<=t}function ZXt(e,t){return e>=t}function BN(e,t,n){let r=[],i=(0,zqe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?BN(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+Lee+i.post,BN(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=Yqe(i.body),d.length===1&&d[0]!==void 0&&(d=BN(d[0],t,!1).map(VXt),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=Dee(d[0]),h=Dee(d[1]),m=Math.max(d[0].length,d[1].length),y=d.length===3&&d[2]!==void 0?Math.max(Math.abs(Dee(d[2])),1):1,g=KXt;h0){let A=new Array(T+1).join("0");b<0?_="-"+A+_.slice(1):_=A+_}}f.push(_)}}else{f=[];for(let p=0;p{"use strict";Object.defineProperty(_B,"__esModule",{value:!0});_B.assertValidPattern=void 0;var YXt=1024*64,JXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>YXt)throw new TypeError("pattern is too long")};_B.assertValidPattern=JXt});var $qe=w(TB=>{"use strict";Object.defineProperty(TB,"__esModule",{value:!0});TB.parseClass=void 0;var XXt={"[: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]},GN=e=>e.replace(/[[\]\\-]/g,"\\$&"),QXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Qqe=e=>e.join(""),$Xt=(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(GN(d)+"-"+GN(m)):m===d&&r.push(GN(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(GN(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(GN(m)),s++}if(l{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.unescape=void 0;var e7t=(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");vB.unescape=e7t});var jee=w(IB=>{"use strict";var fu;Object.defineProperty(IB,"__esModule",{value:!0});IB.AST=void 0;var t7t=$qe(),RB=AB(),n7t=new Set(["!","?","+","*","@"]),Uee=e=>n7t.has(e),eBe=e=>Uee(e.type),r7t=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),i7t=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),s7t=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),tBe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),o7t="(?!(?:^|/)\\.\\.?(?:$|/))",wB="(?!\\.)",a7t=new Set(["[","."]),c7t=new Set(["..","."]),u7t=new Set("().*{}+?[]^$\\!"),l7t=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Fee="[^/]",nBe=Fee+"*?",rBe=Fee+"+?",d7t=0,kB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++d7t;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"?fu.#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&&c7t.has(this.#e[0]))){let h=a7t,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?o7t:y?wB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,RB.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,RB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!wB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?wB:"")+rBe;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?wB:"")+nBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,RB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(eBe(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(xB,"__esModule",{value:!0});xB.escape=void 0;var f7t=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");xB.escape=f7t});var lBe=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 p7t=Jqe(),OB=Xqe(),oBe=jee(),h7t=Hee(),m7t=AB(),g7t=(e,t,n={})=>((0,OB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new Qb(t,n).match(e));it.minimatch=g7t;var y7t=/^\*+([^+@!?*[(]*)$/,S7t=e=>t=>!t.startsWith(".")&&t.endsWith(e),E7t=e=>t=>t.endsWith(e),b7t=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),_7t=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),T7t=/^\*+\.\*+$/,v7t=e=>!e.startsWith(".")&&e.includes("."),A7t=e=>e!=="."&&e!==".."&&e.includes("."),R7t=/^\.\*+$/,w7t=e=>e!=="."&&e!==".."&&e.startsWith("."),k7t=/^\*+$/,I7t=e=>e.length!==0&&!e.startsWith("."),x7t=e=>e.length!==0&&e!=="."&&e!=="..",O7t=/^\?+([^+@!?*[(]*)?$/,N7t=([e,t=""])=>{let n=aBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},P7t=([e,t=""])=>{let n=cBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},C7t=([e,t=""])=>{let n=cBe([e]);return t?r=>n(r)&&r.endsWith(t):n},M7t=([e,t=""])=>{let n=aBe([e]);return t?r=>n(r)&&r.endsWith(t):n},aBe=([e])=>{let t=e.length;return n=>n.length===t&&!n.startsWith(".")},cBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},uBe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",iBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=uBe==="win32"?iBe.win32.sep:iBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var D7t="[^/]",L7t=D7t+"*?",U7t="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",F7t="(?:(?!(?:\\/|^)\\.).)*?",j7t=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=j7t;it.minimatch.filter=it.filter;var Jl=(e,t={})=>Object.assign({},e,t),H7t=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,Jl(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,Jl(e,s))}static defaults(i){return t.defaults(Jl(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,Jl(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,Jl(e,s))}},unescape:(r,i={})=>t.unescape(r,Jl(e,i)),escape:(r,i={})=>t.escape(r,Jl(e,i)),filter:(r,i={})=>t.filter(r,Jl(e,i)),defaults:r=>t.defaults(Jl(e,r)),makeRe:(r,i={})=>t.makeRe(r,Jl(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,Jl(e,i)),match:(r,i,s={})=>t.match(r,i,Jl(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=H7t;it.minimatch.defaults=it.defaults;var q7t=(e,t={})=>((0,OB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,p7t.expand)(e,{max:t.braceExpandMax}));it.braceExpand=q7t;it.minimatch.braceExpand=it.braceExpand;var B7t=(e,t={})=>new Qb(e,t).makeRe();it.makeRe=B7t;it.minimatch.makeRe=it.makeRe;var G7t=(e,t,n={})=>{let r=new Qb(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=G7t;it.minimatch.match=it.match;var sBe=/[?*]|[+@!]\(.*?\)|\[|\]/,z7t=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Qb=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,OB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||uBe,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]==="?"||!sBe.test(s[2]))&&!sBe.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"?z7t(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=Qb;var V7t=jee();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return V7t.AST}});var W7t=Hee();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return W7t.escape}});var K7t=AB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return K7t.unescape}});it.minimatch.AST=oBe.AST;it.minimatch.Minimatch=Qb;it.minimatch.escape=h7t.escape;it.minimatch.unescape=m7t.unescape});var yBe=w((XCr,Gee)=>{"use strict";var dBe=Z("node:diagnostics_channel"),{context:NB,trace:qee,SpanStatusCode:PB,propagation:Bee,diag:Z7t}=(Ce(),ke(Ye)),{getRPCMetadata:Y7t,RPCType:J7t}=fr(),{ATTR_HTTP_ROUTE:CB,ATTR_HTTP_RESPONSE_STATUS_CODE:fBe,ATTR_HTTP_REQUEST_METHOD:X7t,ATTR_URL_PATH:Q7t}=(Nn(),ke(Mr)),{InstrumentationBase:$7t}=Hqe(),{version:eQt,name:pBe}=qqe(),tQt=">=4.0.0 <6",hBe=["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"},Jy={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},Im="anonymous",Xy=Symbol("fastify otel instance"),Qy=Symbol("fastify otel request spans"),zN=Symbol("fastify otel request context"),mBe=Symbol("fastify otel addhook original"),gBe=Symbol("fastify otel setnotfound original"),VN=Symbol("fastify otel ignore path"),WN=Symbol("fastify otel record exceptions"),MB=class extends $7t{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(pBe,eQt,t),this.logger=Z7t.createComponentLogger({namespace:pBe}),this[VN]=null,this[WN]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[WN]=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[VN]=i=>typeof n=="function"?n(i):(r==null&&(r=lBe().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)},dBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(dBe.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:tQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate(Xy,t),r.decorate(mBe,r.addHook),r.decorate(gBe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[zN],h=this[Qy];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,y)=>Bee.inject(p,m,y),extract:(m,y)=>Bee.extract(p,m,y)}}),r.decorateRequest(Qy,null),r.decorateRequest(zN,null),r.addHook("onRoute",function(p){if(t[VN]?.(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 hBe)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]:Jy.ROUTE,[CB]:p.url,[fi.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:Im});else if(Array.isArray(m)){let y=[];for(let g of m)y.push(d(g,h,{[fi.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[fi.FASTIFY_TYPE]:Jy.ROUTE,[CB]:p.url,[fi.HOOK_CALLBACK_NAME]:g.name?.length>0?g.name:Im}));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",{[fi.HOOK_NAME]:`${this.pluginName} - route-handler`,[fi.FASTIFY_TYPE]:Jy.HANDLER,[CB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:Im})}),r.addHook("onRequest",function(p,h,m){if(this[Xy].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[Xy][VN]?.({url:p.url,method:p.method})===!0)return this[Xy].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let y=NB.active();qee.getSpan(y)==null&&(y=Bee.extract(y,p.headers));let g=Y7t(y);p.routeOptions.url!=null&&g?.type===J7t.HTTP&&(g.route=p.routeOptions.url);let E={[fi.ROOT]:"@fastify/otel",[X7t]:p.method,[Q7t]:p.url};p.routeOptions.url!=null&&(E[CB]=p.routeOptions.url);let S=this[Xy].tracer.startSpan("request",{attributes:E},y);try{this[Xy]._requestHook?.(S,p)}catch(b){this[Xy].logger.error({err:b},"requestHook threw")}p[zN]=qee.setSpan(y,S),p[Qy]=S,NB.with(p[zN],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let y=p[Qy];y!=null&&(y.setAttributes({[fBe]:h.statusCode}),y.end()),p[Qy]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let y=f[Qy];y!=null&&(p.statusCode>=500&&y.setStatus({code:PB.ERROR}),y.setAttributes({[fBe]:p.statusCode}),y.end()),f[Qy]=null,m(null,h)}function a(f,p,h,m){let y=f[Qy];y!=null&&(y.setStatus({code:PB.ERROR,message:h.message}),t[WN]!==!1&&y.recordException(h)),m()}function c(f,p){let h=this[mBe];return hBe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:Jy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Im})):h.call(this,f,p)}function u(f,p){let h=this[gBe];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:Jy.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]:Jy.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]:Jy.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]:Jy.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(...y){let g=this[Xy],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[VN]?.({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[zN]??NB.active(),b=f.name?.length>0?f.name:this.pluginName??Im,_=g.tracer.startSpan(`${p} - ${b}`,{attributes:h},S);if(g._lifecycleHook!=null)try{g._lifecycleHook(_,{hookName:p,request:E,handler:b})}catch(T){g.logger.error({err:T},"Execution of lifecycleHook failed")}return NB.with(qee.setSpan(S,_),function(){try{let T=f.call(this,...y);return typeof T?.then=="function"?T.then(A=>(_.end(),A),A=>(_.setStatus({code:PB.ERROR,message:A.message}),g[WN]!==!1&&_.recordException(A),_.end(),Promise.reject(A))):(_.end(),T)}catch(T){throw _.setStatus({code:PB.ERROR,message:T.message}),g[WN]!==!1&&_.recordException(T),_.end(),T}},this)}}}}};Gee.exports=MB;Gee.exports.FastifyOtelInstrumentation=MB});var xm,KN,ZN,SBe=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})(KN||(KN={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(ZN||(ZN={}))});var YN,EBe=v(()=>{YN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function zee(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[YN]||[];return s.push(i),Object.defineProperty(e,YN,{enumerable:!1,configurable:!0,value:s}),i}function DB(e,t){let n=e[YN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[YN])}function _Be(e,t,n){let r,i;try{i=e(),bBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!bBe(i)&&(t(r,i),r))throw r;return i}}function bBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var TBe=v(()=>{Ce();EBe()});function sQt(){let e=ct();e&&e.on("spanStart",t=>{ABe(t)})}function ABe(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 UB,$b,nQt,rQt,vBe,iQt,LB,RBe=v(()=>{Ce();UB=Se(fr(),1),$b=Se(Yt(),1);Nn();st();SBe();TBe();nQt="0.1.0",rQt="@sentry/instrumentation-fastify-v3",vBe="anonymous",iQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),LB=class extends $b.InstrumentationBase{constructor(t={}){super(rQt,nQt,t)}init(){return[new $b.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,UB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===UB.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||vBe,c=`${ZN.MIDDLEWARE} - ${a}`,u=o[1],l=zee(u,s.tracer,c,{[xm.FASTIFY_TYPE]:KN.MIDDLEWARE,[xm.PLUGIN_NAME]:t,[xm.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){DB(u),d.apply(this,f)}),Ve.with(Ft.setSpan(Ve.active(),l),()=>_Be(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||DB(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(!iQt.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()),sQt(),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,$b.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),DB(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=`${ZN.REQUEST_HANDLER} - ${c||this.pluginName||vBe}`,l={[xm.PLUGIN_NAME]:this.pluginName,[xm.FASTIFY_TYPE]:KN.REQUEST_HANDLER,[X8]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[xm.FASTIFY_NAME]=c);let d=zee(i,t.tracer,u,l);ABe(d);let{requestHook:f}=t.getConfig();return f&&(0,$b.safeExecuteInTheMiddle)(()=>f(d,{request:r}),p=>{p&&t._diag.error("request hook failed",p)},!0),Ve.with(Ft.setSpan(Ve.active(),d),()=>{s()})}}}});import*as Vee from"node:diagnostics_channel";function oQt(){let e=ct();if(e)return e.getIntegrationByName(FB)}function wBe(e,t,n,r){let i=oQt()?.getShouldHandleError()||NBe;if(r==="diagnostics-channel"&&(this.diagnosticsChannelExists=!0),this.diagnosticsChannelExists&&r==="onError-hook"){yo&&Y.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 NBe(e,t,n){let r=n.statusCode;return r>=500||r<=299}function PBe(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 cQt(){let e=ct();e&&e.on("spanStart",t=>{PBe(t)})}function uQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&PBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var kBe,FB,IBe,xBe,aQt,OBe,CBe=v(()=>{kBe=Se(yBe(),1);st();sr();Yb();RBe();FB="Fastify",IBe=rt(`${FB}.v3`,()=>new LB);xBe=rt(`${FB}.v5`,()=>{let e=new kBe.FastifyOtelInstrumentation,t=e.plugin();return Vee.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?yo&&Y.error("Failed to setup Fastify instrumentation",i):(cQt(),r&&uQt(r))})}),Vee.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;wBe.call(wBe,r,i,s,"diagnostics-channel")}),e}),aQt=(({shouldHandleError:e})=>{let t;return{name:FB,setupOnce(){t=e||NBe,IBe(),xBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),OBe=(e={})=>aQt(e)});var Wee=w(df=>{"use strict";Object.defineProperty(df,"__esModule",{value:!0});df.SpanNames=df.TokenKind=df.AllowedOperationTypes=void 0;var lQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(lQt=df.AllowedOperationTypes||(df.AllowedOperationTypes={}));var dQt;(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"})(dQt=df.TokenKind||(df.TokenKind={}));var fQt;(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"})(fQt=df.SpanNames||(df.SpanNames={}))});var Kee=w(JN=>{"use strict";Object.defineProperty(JN,"__esModule",{value:!0});JN.AttributeNames=void 0;var pQt;(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"})(pQt=JN.AttributeNames||(JN.AttributeNames={}))});var jB=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 MBe=w(HB=>{"use strict";Object.defineProperty(HB,"__esModule",{value:!0});HB.OPERATION_NOT_SUPPORTED=void 0;var yMr=jB();HB.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var ZBe=w(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.wrapFieldResolver=So.wrapFields=So.getSourceFromLocation=So.getOperation=So.endSpan=So.addSpanSource=So.addInputVariableAttributes=So.isPromise=void 0;var qR=(Ce(),ke(Ye)),$y=Wee(),e_=Kee(),Om=jB(),DBe=Object.values($y.AllowedOperationTypes),hQt=e=>typeof e?.then=="function";So.isPromise=hQt;var mQt=e=>typeof e=="object"&&e!==null;function Zee(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{Zee(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{Zee(e,`${t}.${r}`,i)}):e.setAttribute(`${e_.AttributeNames.VARIABLES}${String(t)}`,n)}function gQt(e,t){Object.entries(t).forEach(([n,r])=>{Zee(e,n,r)})}So.addInputVariableAttributes=gQt;function jBe(e,t,n,r,i){let s=zBe(t,n,r,i);e.setAttribute(e_.AttributeNames.SOURCE,s)}So.addSpanSource=jBe;function yQt(e,t,n,r,i){let s=HBe(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?BBe(n):qBe(n,i);return s={span:SQt(e,t,n,r,i,a)},_Qt(n,i,s),{field:s,spanAdded:!0}}function SQt(e,t,n,r,i,s){let o={[e_.AttributeNames.FIELD_NAME]:r.fieldName,[e_.AttributeNames.FIELD_PATH]:i.join("."),[e_.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[e_.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${$y.SpanNames.RESOLVE} ${o[e_.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&&jBe(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function EQt(e,t){t&&e.recordException(t),e.end()}So.endSpan=EQt;function bQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>DBe.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>DBe.indexOf(n?.operation)!==-1)}So.getOperation=bQt;function _Qt(e,t,n){return e[Om.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function HBe(e,t){return e[Om.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function qBe(e,t){for(let n=t.length-1;n>0;n--){let r=HBe(e,t.slice(0,n));if(r)return r.span}return BBe(e)}function BBe(e){return e[Om.OTEL_GRAPHQL_DATA_SYMBOL].span}function TQt(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 vQt(e){return GBe(` -`,e)}function LBe(e){return GBe(" ",e)}function GBe(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&AQt.indexOf(a.kind)>=0&&(u="*"),a.kind===$y.TokenKind.STRING&&(u=`"${u}"`),a.kind===$y.TokenKind.EOF&&(u=""),a.line>c?(i+=vQt(a.line-c),c=a.line,l=LBe(a.column-1)):a.line===a.prev?.line&&(l=LBe(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}So.getSourceFromLocation=zBe;function VBe(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=KBe(t,n,s.resolve)),s.type)){let o=WBe(s.type);for(let a of o)VBe(a,t,n)}})}So.wrapFields=VBe;function WBe(e){return"ofType"in e?WBe(e.ofType):RQt(e)?e.getTypes():wQt(e)?[e]:[]}function RQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function wQt(e){return"getFields"in e&&typeof e.getFields=="function"}var UBe=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:qR.SpanStatusCode.ERROR,message:t.message}),e.end())},FBe=(e,t)=>{t&&e.end()};function KBe(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&&(mQt(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=TQt(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,So.isPromise)(h)?h.then(m=>(FBe(f,p),m),m=>{throw UBe(f,m,p),m}):(FBe(f,p),h)}catch(h){throw UBe(f,h,p),h}})}return i[Om.OTEL_PATCHED_SYMBOL]=!0,i}So.wrapFieldResolver=KBe});var YBe=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 QBe=w(GB=>{"use strict";Object.defineProperty(GB,"__esModule",{value:!0});GB.GraphQLInstrumentation=void 0;var Nm=(Ce(),ke(Ye)),Xl=Yt(),XN=Wee(),qB=Kee(),Yee=jB(),kQt=MBe(),Ja=ZBe(),JBe=YBe(),XBe={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},BB=[">=14.0.0 <17"],Jee=class extends Xl.InstrumentationBase{constructor(t={}){super(JBe.PACKAGE_NAME,JBe.PACKAGE_VERSION,{...XBe,...t})}setConfig(t={}){super.setConfig({...XBe,...t})}init(){let t=new Xl.InstrumentationNodeModuleDefinition("graphql",BB);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new Xl.InstrumentationNodeModuleFile("graphql/execution/execute.js",BB,t=>((0,Xl.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 Xl.InstrumentationNodeModuleFile("graphql/language/parser.js",BB,t=>((0,Xl.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new Xl.InstrumentationNodeModuleFile("graphql/validation/validate.js",BB,t=>((0,Xl.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,Ja.getOperation)(o.document,o.operationName),c=n._createExecuteSpan(a,o);return o.contextValue[Yee.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[Yee.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Nm.context.with(Nm.trace.setSpan(Nm.context.active(),c),()=>(0,Xl.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,Ja.endSpan)(t,n);return}if((0,Ja.isPromise)(r))r.then(s=>{if(typeof i.responseHook!="function"){(0,Ja.endSpan)(t);return}this._executeResponseHook(t,s)},s=>{(0,Ja.endSpan)(t,s)});else{if(typeof i.responseHook!="function"){(0,Ja.endSpan)(t);return}this._executeResponseHook(t,r)}}_executeResponseHook(t,n){let{responseHook:r}=this.getConfig();r&&(0,Xl.safeExecuteInTheMiddle)(()=>{r(t,n)},i=>{i&&this._diag.error("Error running response hook",i),(0,Ja.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(XN.SpanNames.PARSE);return Nm.context.with(Nm.trace.setSpan(Nm.context.active(),o),()=>(0,Xl.safeExecuteInTheMiddle)(()=>n.call(t,r,i),(a,c)=>{c&&((0,Ja.getOperation)(c)?c.loc&&(0,Ja.addSpanSource)(o,c.loc,s.allowValues):o.updateName(XN.SpanNames.SCHEMA_PARSE)),(0,Ja.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(XN.SpanNames.VALIDATE,{});return Nm.context.with(Nm.trace.setSpan(Nm.context.active(),c),()=>(0,Xl.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(XN.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:qB.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Ja.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(XN.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=kQt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(qB.AttributeNames.OPERATION_NAME,s)}return n.document?.loc&&(0,Ja.addSpanSource)(i,n.document.loc,r.allowValues),n.variableValues&&r.allowValues&&(0,Ja.addInputVariableAttributes)(i,n.variableValues),i}_wrapExecuteArgs(t,n,r,i,s,o,a,c,u){if(i||(i={}),i[Yee.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,Ja.wrapFieldResolver)(this.tracer,()=>this.getConfig(),d,l),t&&((0,Ja.wrapFields)(t.getQueryType(),this.tracer,()=>this.getConfig()),(0,Ja.wrapFields)(t.getMutationType(),this.tracer,()=>this.getConfig())),{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c}}};GB.GraphQLInstrumentation=Jee});var $Be=w(zB=>{"use strict";Object.defineProperty(zB,"__esModule",{value:!0});zB.GraphQLInstrumentation=void 0;var IQt=QBe();Object.defineProperty(zB,"GraphQLInstrumentation",{enumerable:!0,get:function(){return IQt.GraphQLInstrumentation}})});function iGe(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function OQt(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 eGe,tGe,nGe,xQt,rGe,sGe=v(()=>{Ce();eGe=Se($Be(),1);st();sr();wR();tGe="Graphql",nGe=rt(tGe,eGe.GraphQLInstrumentation,e=>{let t=iGe(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"]} (${OQt(l)})`)}}}}),xQt=((e={})=>({name:tGe,setupOnce(){nGe(iGe(e))}})),rGe=xQt});var oGe=w(VB=>{"use strict";Object.defineProperty(VB,"__esModule",{value:!0});VB.EVENT_LISTENERS_SET=void 0;VB.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var aGe=w(WB=>{"use strict";Object.defineProperty(WB,"__esModule",{value:!0});WB.bufferTextMapGetter=void 0;WB.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 cGe=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 uGe=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 mGe=w(ZB=>{"use strict";Object.defineProperty(ZB,"__esModule",{value:!0});ZB.KafkaJsInstrumentation=void 0;var Lr=(Ce(),ke(Ye)),Ql=Yt(),zR=(Nn(),ke(Mr)),lGe=oGe(),dGe=aGe(),ot=cGe(),fGe=uGe();function KB(e,t,n){return r=>{e.add(t,{...n,...r?{[zR.ATTR_ERROR_TYPE]:r}:{}})}}function pGe(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[zR.ATTR_ERROR_TYPE]:r}:{}})}}var hGe=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],Xee=class extends Ql.InstrumentationBase{constructor(t={}){super(fGe.PACKAGE_NAME,fGe.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:hGe}}),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:hGe}})}init(){let t=r=>{(0,Ql.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,Ql.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new Ql.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,Ql.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[lGe.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[lGe.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,Ql.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,Ql.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,Ql.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,Ql.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,Ql.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,dGe.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=[pGe(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)}),KB(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=[KB(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,dGe.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(pGe(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(KB(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=>KB(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,Ql.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,Ql.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};ZB.KafkaJsInstrumentation=Xee});var gGe=w(YB=>{"use strict";Object.defineProperty(YB,"__esModule",{value:!0});YB.KafkaJsInstrumentation=void 0;var NQt=mGe();Object.defineProperty(YB,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return NQt.KafkaJsInstrumentation}})});var yGe,SGe,EGe,PQt,bGe,_Ge=v(()=>{yGe=Se(gGe(),1);sr();SGe="Kafka",EGe=rt(SGe,()=>new yGe.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),PQt=(()=>({name:SGe,setupOnce(){EGe()}})),bGe=PQt});var TGe=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 wGe=w(JB=>{"use strict";Object.defineProperty(JB,"__esModule",{value:!0});JB.LruMemoizerInstrumentation=void 0;var vGe=(Ce(),ke(Ye)),AGe=Yt(),RGe=TGe(),Qee=class extends AGe.InstrumentationBase{constructor(t={}){super(RGe.PACKAGE_NAME,RGe.PACKAGE_VERSION,t)}init(){return[new AGe.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"?vGe.context.bind(vGe.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};JB.LruMemoizerInstrumentation=Qee});var kGe=w(XB=>{"use strict";Object.defineProperty(XB,"__esModule",{value:!0});XB.LruMemoizerInstrumentation=void 0;var CQt=wGe();Object.defineProperty(XB,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return CQt.LruMemoizerInstrumentation}})});var IGe,xGe,OGe,MQt,NGe,PGe=v(()=>{IGe=Se(kGe(),1);sr();xGe="LruMemoizer",OGe=rt(xGe,()=>new IGe.LruMemoizerInstrumentation),MQt=(()=>({name:xGe,setupOnce(){OGe()}})),NGe=MQt});var CGe=w(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Pi.DB_SYSTEM_VALUE_MONGODB=Pi.DB_SYSTEM_NAME_VALUE_MONGODB=Pi.ATTR_NET_PEER_PORT=Pi.ATTR_NET_PEER_NAME=Pi.ATTR_DB_SYSTEM=Pi.ATTR_DB_STATEMENT=Pi.ATTR_DB_OPERATION=Pi.ATTR_DB_NAME=Pi.ATTR_DB_MONGODB_COLLECTION=Pi.ATTR_DB_CONNECTION_STRING=void 0;Pi.ATTR_DB_CONNECTION_STRING="db.connection_string";Pi.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Pi.ATTR_DB_NAME="db.name";Pi.ATTR_DB_OPERATION="db.operation";Pi.ATTR_DB_STATEMENT="db.statement";Pi.ATTR_DB_SYSTEM="db.system";Pi.ATTR_NET_PEER_NAME="net.peer.name";Pi.ATTR_NET_PEER_PORT="net.peer.port";Pi.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb";Pi.DB_SYSTEM_VALUE_MONGODB="mongodb";Pi.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var MGe=w(QN=>{"use strict";Object.defineProperty(QN,"__esModule",{value:!0});QN.MongodbCommandType=void 0;var DQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(DQt=QN.MongodbCommandType||(QN.MongodbCommandType={}))});var DGe=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 FGe=w(QB=>{"use strict";Object.defineProperty(QB,"__esModule",{value:!0});QB.MongoDBInstrumentation=void 0;var Ki=(Ce(),ke(Ye)),jn=Yt(),Pm=(Nn(),ke(Mr)),dl=CGe(),t_=MGe(),LGe=DGe(),UGe={requireParentSpan:!0},$ee=class e extends jn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(LGe.PACKAGE_NAME,LGe.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(dl.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}),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=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===t_.MongodbCommandType.UNKNOWN?void 0:f,h=t._getV3SpanAttributes(s,i,o,p),m=t._spanNameFromAttrs(h),y=t.tracer.startSpan(m,{kind:Ki.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=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}),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=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}),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?t_.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?t_.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?t_.MongodbCommandType.IS_MASTER:t.count!==void 0?t_.MongodbCommandType.COUNT:t.aggregate!==void 0?t_.MongodbCommandType.AGGREGATE:t_.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[dl.ATTR_DB_SYSTEM]=dl.DB_SYSTEM_VALUE_MONGODB,a[dl.ATTR_DB_NAME]=t,a[dl.ATTR_DB_MONGODB_COLLECTION]=n,a[dl.ATTR_DB_OPERATION]=o,a[dl.ATTR_DB_CONNECTION_STRING]=`mongodb://${r}:${i}/${t}`),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[Pm.ATTR_DB_SYSTEM_NAME]=dl.DB_SYSTEM_NAME_VALUE_MONGODB,a[Pm.ATTR_DB_NAMESPACE]=t,a[Pm.ATTR_DB_OPERATION_NAME]=o,a[Pm.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&jn.SemconvStability.OLD&&(a[dl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[Pm.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&jn.SemconvStability.OLD&&(a[dl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[Pm.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[dl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[Pm.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[Pm.ATTR_DB_OPERATION_NAME],t[Pm.ATTR_DB_COLLECTION_NAME]].filter(r=>r).join(" ")||dl.DB_SYSTEM_NAME_VALUE_MONGODB:n=`mongodb.${t[dl.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}};QB.MongoDBInstrumentation=$ee});var jGe=w($N=>{"use strict";Object.defineProperty($N,"__esModule",{value:!0});$N.MongodbCommandType=void 0;var LQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(LQt=$N.MongodbCommandType||($N.MongodbCommandType={}))});var HGe=w(KR=>{"use strict";Object.defineProperty(KR,"__esModule",{value:!0});KR.MongodbCommandType=KR.MongoDBInstrumentation=void 0;var UQt=FGe();Object.defineProperty(KR,"MongoDBInstrumentation",{enumerable:!0,get:function(){return UQt.MongoDBInstrumentation}});var FQt=jGe();Object.defineProperty(KR,"MongodbCommandType",{enumerable:!0,get:function(){return FQt.MongodbCommandType}})});function jQt(e){let t=ete(e);return JSON.stringify(t)}function ete(e){if(Array.isArray(e))return e.map(t=>ete(t));if(HQt(e)){let t={};return Object.entries(e).map(([n,r])=>[n,ete(r)]).reduce((n,r)=>(BQt(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function HQt(e){return typeof e=="object"&&e!==null&&!qQt(e)}function qQt(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function BQt(e){return Array.isArray(e)}var qGe,BGe,GGe,GQt,zGe,VGe=v(()=>{qGe=Se(HGe(),1);sr();BGe="Mongo",GGe=rt(BGe,()=>new qGe.MongoDBInstrumentation({dbStatementSerializer:jQt,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));GQt=(()=>({name:BGe,setupOnce(){GGe()}})),zGe=GQt});var tte=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 ZGe=w(eS=>{"use strict";Object.defineProperty(eS,"__esModule",{value:!0});eS.handleCallbackResponse=eS.handlePromiseResponse=eS.getAttributesFromCollection=void 0;var WGe=(Ce(),ke(Ye)),tP=Yt(),eP=tte(),$B=(Nn(),ke(Mr));function zQt(e,t,n){let r={};return t&tP.SemconvStability.OLD&&(r[eP.ATTR_DB_MONGODB_COLLECTION]=e.name,r[eP.ATTR_DB_NAME]=e.conn.name,r[eP.ATTR_DB_USER]=e.conn.user),t&tP.SemconvStability.STABLE&&(r[$B.ATTR_DB_COLLECTION_NAME]=e.name,r[$B.ATTR_DB_NAMESPACE]=e.conn.name),n&tP.SemconvStability.OLD&&(r[eP.ATTR_NET_PEER_NAME]=e.conn.host,r[eP.ATTR_NET_PEER_PORT]=e.conn.port),n&tP.SemconvStability.STABLE&&(r[$B.ATTR_SERVER_ADDRESS]=e.conn.host,r[$B.ATTR_SERVER_PORT]=e.conn.port),r}eS.getAttributesFromCollection=zQt;function KGe(e,t={}){e.recordException(t),e.setStatus({code:WGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` -Mongoose Error Code: ${t.code}`:""}`})}function nte(e,t,n,r=void 0){n&&(0,tP.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&WGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function VQt(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(nte(t,i,n,r),i)).catch(i=>{throw KGe(t,i),i}).finally(()=>t.end()):(nte(t,e,n,r),t.end(),e)}eS.handlePromiseResponse=VQt;function WQt(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?KGe(r,c):nte(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}eS.handleCallbackResponse=WQt});var YGe=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-mongoose"});var eze=w(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.MongooseInstrumentation=pu._ALREADY_INSTRUMENTED=pu._STORED_PARENT_SPAN=void 0;var Eo=(Ce(),ke(Ye)),KQt=fr(),rte=ZGe(),da=Yt(),JGe=YGe(),tS=tte(),n_=(Nn(),ke(Mr)),eG=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],ZQt=["remove","count","findOneAndRemove",...eG],YQt=["count","findOneAndRemove",...eG],JQt=[...eG];function XGe(e){return e?e.startsWith("6.")||e.startsWith("5.")?ZQt:e.startsWith("7.")?YQt:JQt:eG}function QGe(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function $Ge(e){return!e||!e.startsWith("8.")?!1:parseInt(e.split(".")[1],10)>=21}pu._STORED_PARENT_SPAN=Symbol("stored-parent-span");pu._ALREADY_INSTRUMENTED=Symbol("already-instrumented");var ite=class extends da.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(JGe.PACKAGE_NAME,JGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,da.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,da.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new da.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,QGe(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),$Ge(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)),XGe(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=XGe(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,QGe(n)&&this._unwrap(r.Model.prototype,"remove"),$Ge(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[pu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c("aggregate",{options:this.options,aggregatePipeline:this._pipeline});n._dbSemconvStability&da.SemconvStability.OLD&&(a[tS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&da.SemconvStability.STABLE&&(a[n_.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[pu._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[pu._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&da.SemconvStability.OLD&&(a[tS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&da.SemconvStability.STABLE&&(a[n_.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&da.SemconvStability.OLD&&(u[tS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&da.SemconvStability.STABLE&&(u[n_.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 y=p(t,{condition:{_id:this._id},updates:l,options:d});r._dbSemconvStability&da.SemconvStability.OLD&&(f[tS.ATTR_DB_STATEMENT]=y),r._dbSemconvStability&da.SemconvStability.STABLE&&(f[n_.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[pu._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&da.SemconvStability.OLD&&(l[tS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&da.SemconvStability.STABLE&&(l[n_.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[pu._STORED_PARENT_SPAN]=i),s}}patchAndCaptureSpanContext(t){let n=this;return r=>function(){return this[pu._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,rte.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&da.SemconvStability.OLD&&(o[tS.ATTR_DB_OPERATION]=r,o[tS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&da.SemconvStability.STABLE&&(o[n_.ATTR_DB_OPERATION_NAME]=r,o[n_.ATTR_DB_SYSTEM_NAME]=tS.DB_SYSTEM_NAME_VALUE_MONGODB);let a=this._dbSemconvStability&da.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,rte.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,rte.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?Eo.context.with((0,KQt.suppressTracing)(Eo.context.active()),t):t()}};pu.MongooseInstrumentation=ite});var tze=w(tG=>{"use strict";Object.defineProperty(tG,"__esModule",{value:!0});tG.MongooseInstrumentation=void 0;var XQt=eze();Object.defineProperty(tG,"MongooseInstrumentation",{enumerable:!0,get:function(){return XQt.MongooseInstrumentation}})});var nze,rze,ize,QQt,sze,oze=v(()=>{nze=Se(tze(),1);sr();rze="Mongoose",ize=rt(rze,()=>new nze.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),QQt=(()=>({name:rze,setupOnce(){ize()}})),sze=QQt});var aze=w(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Ys.DB_SYSTEM_VALUE_MYSQL=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_NAME=Ys.ATTR_DB_CONNECTION_STRING=void 0;Ys.ATTR_DB_CONNECTION_STRING="db.connection_string";Ys.ATTR_DB_NAME="db.name";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_VALUE_MYSQL="mysql";Ys.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var cze=w(nP=>{"use strict";Object.defineProperty(nP,"__esModule",{value:!0});nP.AttributeNames=void 0;var $Qt;(function(e){e.MYSQL_VALUES="db.mysql.values"})($Qt=nP.AttributeNames||(nP.AttributeNames={}))});var uze=w(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.getPoolNameOld=Xa.arrayStringifyHelper=Xa.getSpanName=Xa.getDbValues=Xa.getDbQueryText=Xa.getJDBCString=Xa.getConfig=void 0;function e$t(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}Xa.getConfig=e$t;function t$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}Xa.getJDBCString=t$t;function n$t(e){return typeof e=="string"?e:e.sql}Xa.getDbQueryText=n$t;function r$t(e,t){return ste(typeof e=="string"?t:t||e.values)}Xa.getDbValues=r$t;function i$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}Xa.getSpanName=i$t;function ste(e){return e?`[${e.toString()}]`:""}Xa.arrayStringifyHelper=ste;function s$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()}Xa.getPoolNameOld=s$t});var lze=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-mysql"});var fze=w(nG=>{"use strict";Object.defineProperty(nG,"__esModule",{value:!0});nG.MySQLInstrumentation=void 0;var hu=(Ce(),ke(Ye)),$l=Yt(),JR=(Nn(),ke(Mr)),Cm=aze(),o$t=cze(),r_=uze(),dze=lze(),ote=class extends $l.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(dze.PACKAGE_NAME,dze.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,$l.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,$l.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 $l.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,$l.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,$l.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,$l.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,r_.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=hu.context.active();return function(i,s){s&&((0,$l.isWrapped)(s.query)||n._wrap(s,"query",n._patchQuery(s))),typeof t=="function"&&hu.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,r_.getConfig)(t.config),f=parseInt(u,10),p=(0,r_.getDbQueryText)(i);r._dbSemconvStability&$l.SemconvStability.OLD&&(a[Cm.ATTR_DB_SYSTEM]=Cm.DB_SYSTEM_VALUE_MYSQL,a[Cm.ATTR_DB_CONNECTION_STRING]=(0,r_.getJDBCString)(c,u,l),a[Cm.ATTR_DB_NAME]=l,a[Cm.ATTR_DB_USER]=d,a[Cm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&$l.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&$l.SemconvStability.OLD&&(a[Cm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Cm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&$l.SemconvStability.STABLE&&(a[JR.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[JR.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,r_.getSpanName)(i),{kind:hu.SpanKind.CLIENT,attributes:a});if(r.getConfig().enhancedDatabaseReporting){let g;Array.isArray(s)?g=s:arguments[2]&&(g=[s]),h.setAttribute(o$t.AttributeNames.MYSQL_VALUES,(0,r_.getDbValues)(i,g))}let m=Array.from(arguments).findIndex(g=>typeof g=="function"),y=hu.context.active();if(m===-1){let g=hu.context.with(hu.trace.setSpan(hu.context.active(),h),()=>n.apply(t,arguments));return hu.context.bind(y,g),g.on("error",E=>h.setStatus({code:hu.SpanStatusCode.ERROR,message:E.message})).on("end",()=>{h.end()})}else return r._wrap(arguments,m,r._patchCallbackQuery(h,y)),hu.context.with(hu.trace.setSpan(hu.context.active(),h),()=>n.apply(t,arguments))}}}_patchCallbackQuery(t,n){return r=>function(i,s,o){return i&&t.setStatus({code:hu.SpanStatusCode.ERROR,message:i.message}),t.end(),hu.context.with(n,()=>r(...arguments))}}_setPoolCallbacks(t,n){let r=n||(0,r_.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")})}};nG.MySQLInstrumentation=ote});var pze=w(rG=>{"use strict";Object.defineProperty(rG,"__esModule",{value:!0});rG.MySQLInstrumentation=void 0;var a$t=fze();Object.defineProperty(rG,"MySQLInstrumentation",{enumerable:!0,get:function(){return a$t.MySQLInstrumentation}})});var hze,mze,gze,c$t,yze,Sze=v(()=>{hze=Se(pze(),1);sr();mze="Mysql",gze=rt(mze,()=>new hze.MySQLInstrumentation({})),c$t=(()=>({name:mze,setupOnce(){gze()}})),yze=c$t});var ate=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 ute=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.addSqlCommenterComment=void 0;var cte=(Ce(),ke(Ye)),u$t=fr();function l$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 f$t(e,t){if(typeof t!="string"||t.length===0||l$t(t))return t;let n=new u$t.W3CTraceContextPropagator,r={};n.inject(cte.trace.setSpan(cte.ROOT_CONTEXT,e),r,cte.defaultTextMapSetter);let i=Object.keys(r).sort();if(i.length===0)return t;let s=i.map(o=>{let a=d$t(r[o]);return`${o}='${a}'`}).join(",");return`${t} /*${s}*/`}iG.addSqlCommenterComment=f$t});var Eze=w(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.getConnectionPrototypeToInstrument=ed.once=ed.getSpanName=ed.getQueryText=ed.getConnectionAttributes=void 0;var rP=ate(),sG=Yt(),lte=(Nn(),ke(Mr));function p$t(e,t,n){let{host:r,port:i,database:s,user:o}=h$t(e),a={};t&sG.SemconvStability.OLD&&(a[rP.ATTR_DB_CONNECTION_STRING]=m$t(r,i,s),a[rP.ATTR_DB_NAME]=s,a[rP.ATTR_DB_USER]=o),t&sG.SemconvStability.STABLE&&(a[lte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&sG.SemconvStability.OLD&&(a[rP.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[rP.ATTR_NET_PEER_PORT]=c)),n&sG.SemconvStability.STABLE&&(a[lte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[lte.ATTR_SERVER_PORT]=c)),a}ed.getConnectionAttributes=p$t;function h$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 m$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function g$t(e,t,n,r=!1,i=y$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,S$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"}}ed.getQueryText=g$t;function y$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function S$t(e){return"values"in e}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}ed.getSpanName=E$t;var b$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};ed.once=b$t;function _$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}ed.getConnectionPrototypeToInstrument=_$t});var bze=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 Aze=w(oG=>{"use strict";Object.defineProperty(oG,"__esModule",{value:!0});oG.MySQL2Instrumentation=void 0;var _ze=(Ce(),ke(Ye)),ff=Yt(),dte=ate(),Tze=ute(),QR=Eze(),vze=bze(),fte=(Nn(),ke(Mr)),pte=[">=1.4.2 <4"],hte=class extends ff.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(vze.PACKAGE_NAME,vze.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,ff.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,ff.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,ff.isWrapped)(s.query)&&this._unwrap(s,"query"),this._wrap(s,"query",this._patchQuery(t,!1)),(0,ff.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 ff.InstrumentationNodeModuleDefinition("mysql2",pte,s=>(n(s),s),()=>{},[new ff.InstrumentationNodeModuleFile("mysql2/promise.js",pte,s=>(n(s),s),()=>{}),new ff.InstrumentationNodeModuleFile("mysql2/lib/connection.js",pte,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&ff.SemconvStability.OLD&&(f[dte.ATTR_DB_SYSTEM]=dte.DB_SYSTEM_VALUE_MYSQL,f[dte.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&ff.SemconvStability.STABLE&&(f[fte.ATTR_DB_SYSTEM_NAME]=fte.DB_SYSTEM_NAME_VALUE_MYSQL,f[fte.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,QR.getSpanName)(s),{kind:_ze.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,Tze.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,Tze.addSqlCommenterComment)(h,s.sql)}));let m=(0,QR.once)((y,g)=>{y?h.setStatus({code:_ze.SpanStatusCode.ERROR,message:y.message}):typeof d=="function"&&(0,ff.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)}}};oG.MySQL2Instrumentation=hte});var Rze=w(aG=>{"use strict";Object.defineProperty(aG,"__esModule",{value:!0});aG.MySQL2Instrumentation=void 0;var T$t=Aze();Object.defineProperty(aG,"MySQL2Instrumentation",{enumerable:!0,get:function(){return T$t.MySQL2Instrumentation}})});var wze,kze,Ize,v$t,xze,Oze=v(()=>{wze=Se(Rze(),1);sr();kze="Mysql2",Ize=rt(kze,()=>new wze.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),v$t=(()=>({name:kze,setupOnce(){Ize()}})),xze=v$t});var Nze=w(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.DB_SYSTEM_VALUE_REDIS=Qa.DB_SYSTEM_NAME_VALUE_REDIS=Qa.ATTR_NET_PEER_PORT=Qa.ATTR_NET_PEER_NAME=Qa.ATTR_DB_SYSTEM=Qa.ATTR_DB_STATEMENT=Qa.ATTR_DB_CONNECTION_STRING=void 0;Qa.ATTR_DB_CONNECTION_STRING="db.connection_string";Qa.ATTR_DB_STATEMENT="db.statement";Qa.ATTR_DB_SYSTEM="db.system";Qa.ATTR_NET_PEER_NAME="net.peer.name";Qa.ATTR_NET_PEER_PORT="net.peer.port";Qa.DB_SYSTEM_NAME_VALUE_REDIS="redis";Qa.DB_SYSTEM_VALUE_REDIS="redis"});var Pze=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.endSpan=void 0;var A$t=(Ce(),ke(Ye)),R$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:A$t.SpanStatusCode.ERROR,message:t.message})),e.end()};cG.endSpan=R$t});var lG=w(uG=>{"use strict";Object.defineProperty(uG,"__esModule",{value:!0});uG.defaultDbStatementSerializer=void 0;var w$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}],k$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=w$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};uG.defaultDbStatementSerializer=k$t});var Cze=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 Uze=w(dG=>{"use strict";Object.defineProperty(dG,"__esModule",{value:!0});dG.IORedisInstrumentation=void 0;var nS=(Ce(),ke(Ye)),mu=Yt(),rS=(Nn(),ke(Mr)),gu=Nze(),Mze=Yt(),iP=Pze(),I$t=lG(),Dze=Cze(),Lze={requireParentSpan:!0},mte=class extends mu.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(Dze.PACKAGE_NAME,Dze.PACKAGE_VERSION,{...Lze,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,mu.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,mu.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Lze,...t})}init(){return[new mu.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(t,n)=>{let r=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,mu.isWrapped)(r.prototype.sendCommand)&&this._unwrap(r.prototype,"sendCommand"),this._wrap(r.prototype,"sendCommand",this._patchSendCommand(n)),(0,mu.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||I$t.defaultDbStatementSerializer,a=nS.trace.getSpan(nS.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&mu.SemconvStability.OLD&&(c[gu.ATTR_DB_SYSTEM]=gu.DB_SYSTEM_VALUE_REDIS,c[gu.ATTR_DB_STATEMENT]=d,c[gu.ATTR_DB_CONNECTION_STRING]=`redis://${u}:${l}`),r._dbSemconvStability&mu.SemconvStability.STABLE&&(c[rS.ATTR_DB_SYSTEM_NAME]=gu.DB_SYSTEM_NAME_VALUE_REDIS,c[rS.ATTR_DB_QUERY_TEXT]=d),r._netSemconvStability&mu.SemconvStability.OLD&&(c[gu.ATTR_NET_PEER_NAME]=u,c[gu.ATTR_NET_PEER_PORT]=l),r._netSemconvStability&mu.SemconvStability.STABLE&&(c[rS.ATTR_SERVER_ADDRESS]=u,c[rS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:nS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,Mze.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&nS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(g){(0,Mze.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,g),E=>{E&&nS.diag.error("ioredis instrumentation: response hook failed",E)},!0),(0,iP.endSpan)(f,null),m(g)};let y=i.reject;return i.reject=function(g){(0,iP.endSpan)(f,g),y(g)},h}catch(h){throw(0,iP.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=nS.trace.getSpan(nS.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&mu.SemconvStability.OLD&&(i[gu.ATTR_DB_SYSTEM]=gu.DB_SYSTEM_VALUE_REDIS,i[gu.ATTR_DB_STATEMENT]="connect",i[gu.ATTR_DB_CONNECTION_STRING]=`redis://${s}:${o}`),n._dbSemconvStability&mu.SemconvStability.STABLE&&(i[rS.ATTR_DB_SYSTEM_NAME]=gu.DB_SYSTEM_NAME_VALUE_REDIS,i[rS.ATTR_DB_QUERY_TEXT]="connect"),n._netSemconvStability&mu.SemconvStability.OLD&&(i[gu.ATTR_NET_PEER_NAME]=s,i[gu.ATTR_NET_PEER_PORT]=o),n._netSemconvStability&mu.SemconvStability.STABLE&&(i[rS.ATTR_SERVER_ADDRESS]=s,i[rS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:nS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,iP.endSpan)(a,null),c}catch(c){throw(0,iP.endSpan)(a,c),c}}}};dG.IORedisInstrumentation=mte});var Fze=w(fG=>{"use strict";Object.defineProperty(fG,"__esModule",{value:!0});fG.IORedisInstrumentation=void 0;var x$t=Uze();Object.defineProperty(fG,"IORedisInstrumentation",{enumerable:!0,get:function(){return x$t.IORedisInstrumentation}})});var pG=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 jze=w(iS=>{"use strict";Object.defineProperty(iS,"__esModule",{value:!0});iS.getTracedCreateStreamTrace=iS.getTracedCreateClient=iS.endSpan=void 0;var sP=(Ce(),ke(Ye)),O$t=(e,t)=>{t&&e.setStatus({code:sP.SpanStatusCode.ERROR,message:t.message}),e.end()};iS.endSpan=O$t;var N$t=e=>function(){let n=e.apply(this,arguments);return sP.context.bind(sP.context.active(),n)};iS.getTracedCreateClient=N$t;var P$t=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){sP.context.bind(sP.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};iS.getTracedCreateStreamTrace=P$t});var hG=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 qze=w(gG=>{"use strict";Object.defineProperty(gG,"__esModule",{value:!0});gG.RedisInstrumentationV2_V3=void 0;var fl=Yt(),mG=jze(),Hze=pG(),oP=(Ce(),ke(Ye)),aP=(Nn(),ke(Mr)),i_=hG(),C$t=lG(),gte=class e extends fl.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(Hze.PACKAGE_NAME,Hze.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,fl.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,fl.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new fl.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],t=>((0,fl.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,fl.isWrapped)(t.RedisClient.prototype.create_stream)&&this._unwrap(t.RedisClient.prototype,"create_stream"),this._wrap(t.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,fl.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=oP.trace.getSpan(oP.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||C$t.defaultDbStatementSerializer,u={};t._semconvStability&fl.SemconvStability.OLD&&Object.assign(u,{[i_.ATTR_DB_SYSTEM]:i_.DB_SYSTEM_VALUE_REDIS,[i_.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&fl.SemconvStability.STABLE&&Object.assign(u,{[aP.ATTR_DB_SYSTEM_NAME]:i_.DB_SYSTEM_NAME_VALUE_REDIS,[aP.ATTR_DB_OPERATION_NAME]:s.command,[aP.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:oP.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&fl.SemconvStability.OLD&&Object.assign(f,{[i_.ATTR_NET_PEER_NAME]:this.connection_options.host,[i_.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&fl.SemconvStability.STABLE&&Object.assign(f,{[aP.ATTR_SERVER_ADDRESS]:this.connection_options.host,[aP.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&fl.SemconvStability.OLD&&l.setAttribute(i_.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=oP.context.active();arguments[0].callback=function(h,m){if(o?.responseHook){let y=o.responseHook;(0,fl.safeExecuteInTheMiddle)(()=>{y(l,s.command,s.args,m)},g=>{g&&t._diag.error("Error executing responseHook",g)},!0)}return(0,mG.endSpan)(l,h),oP.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,mG.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,mG.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,mG.getTracedCreateStreamTrace)(n)}}};gG.RedisInstrumentationV2_V3=gte});var Gze=w(yG=>{"use strict";Object.defineProperty(yG,"__esModule",{value:!0});yG.getClientAttributes=void 0;var yte=(Nn(),ke(Mr)),tw=hG(),Bze=Yt();function M$t(e,t,n){let r={};return n&Bze.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]:D$t(e,t?.url)}),n&Bze.SemconvStability.STABLE&&Object.assign(r,{[yte.ATTR_DB_SYSTEM_NAME]:tw.DB_SYSTEM_NAME_VALUE_REDIS,[yte.ATTR_SERVER_ADDRESS]:t?.socket?.host,[yte.ATTR_SERVER_PORT]:t?.socket?.port}),r}yG.getClientAttributes=M$t;function D$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 Kze=w(SG=>{"use strict";Object.defineProperty(SG,"__esModule",{value:!0});SG.RedisInstrumentationV4_V5=void 0;var td=(Ce(),ke(Ye)),pi=Yt(),zze=Gze(),L$t=lG(),Vze=pG(),Ste=(Nn(),ke(Mr)),U$t=hG(),cP=Symbol("opentelemetry.instrumentation.redis.open_spans"),Wze=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),Ete=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(Vze.PACKAGE_NAME,Vze.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[cP];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[cP];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[Wze]=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,zze.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:td.SpanKind.CLIENT,attributes:o});return td.context.with(td.trace.setSpan(td.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:td.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(td.trace.getSpan(td.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[Wze],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||L$t.defaultDbStatementSerializer,l=(0,zze.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Ste.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[U$t.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Ste.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:td.SpanKind.CLIENT,attributes:l}),f=td.context.with(td.trace.setSpan(td.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[cP]=p[cP]||[],p[cP].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(EG,"__esModule",{value:!0});EG.RedisInstrumentation=void 0;var F$t=Yt(),Zze=pG(),j$t=qze(),H$t=Kze(),Yze={requireParentSpan:!1},bte=class extends F$t.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...Yze,...t};super(Zze.PACKAGE_NAME,Zze.PACKAGE_VERSION,n),this.instrumentationV2_V3=new j$t.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new H$t.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...Yze,...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())}};EG.RedisInstrumentation=bte});var Xze=w(bG=>{"use strict";Object.defineProperty(bG,"__esModule",{value:!0});bG.RedisInstrumentation=void 0;var q$t=Jze();Object.defineProperty(bG,"RedisInstrumentation",{enumerable:!0,get:function(){return q$t.RedisInstrumentation}})});function uP(e,t){return e.includes(t.toLowerCase())}function Tte(e){return uP(_te,e)?"cache.get":uP(G$t,e)?"cache.put":void 0}function z$t(e,t){return t.some(n=>e.startsWith(n))}function $ze(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)?Qze(i.map(s=>n(s))):[""],r=t[0];return uP(B$t,e)&&r!=null?n(r):Qze(t.map(i=>n(i)))}catch{return}}function eVe(e,t,n){if(!Tte(e))return!1;for(let r of t)if(z$t(r,n))return!0;return!1}function tVe(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 Qze(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var B$t,_te,G$t,nVe=v(()=>{B$t=["get","set","setex"],_te=["get","mget"],G$t=["set","setex"]});var rVe,iVe,_G,lP,sVe,V$t,W$t,oVe,K$t,aVe,cVe=v(()=>{rVe=Se(Fze(),1),iVe=Se(Xze(),1);st();sr();nVe();_G="Redis",lP={},sVe=(e,t,n,r)=>{e.setAttribute(At,"auto.db.otel.redis");let i=$ze(t,n),s=Tte(t);if(!i||!s||!lP.cachePrefixes||!eVe(t,i,lP.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=tVe(r);c&&e.setAttribute(VX,c),uP(_te,t)&&c!==void 0&&e.setAttribute(GX,c>0),e.setAttributes({[zt]:s,[zX]:i});let u=i.join(", ");e.updateName(lP.maxCacheKeyLength?Sy(u,lP.maxCacheKeyLength):u)},V$t=rt(`${_G}.IORedis`,()=>new rVe.IORedisInstrumentation({responseHook:sVe})),W$t=rt(`${_G}.Redis`,()=>new iVe.RedisInstrumentation({responseHook:sVe})),oVe=Object.assign(()=>{V$t(),W$t()},{id:_G}),K$t=((e={})=>({name:_G,setupOnce(){lP=e,oVe()}})),aVe=K$t});var uVe=w(TG=>{"use strict";Object.defineProperty(TG,"__esModule",{value:!0});TG.EVENT_LISTENERS_SET=void 0;TG.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var vte=w(dP=>{"use strict";Object.defineProperty(dP,"__esModule",{value:!0});dP.AttributeNames=void 0;var Z$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"})(Z$t=dP.AttributeNames||(dP.AttributeNames={}))});var Ate=w(_r=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=_r.METRIC_DB_CLIENT_CONNECTION_COUNT=_r.DB_SYSTEM_VALUE_POSTGRESQL=_r.DB_CLIENT_CONNECTION_STATE_VALUE_USED=_r.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=_r.ATTR_NET_PEER_PORT=_r.ATTR_NET_PEER_NAME=_r.ATTR_DB_USER=_r.ATTR_DB_SYSTEM=_r.ATTR_DB_STATEMENT=_r.ATTR_DB_NAME=_r.ATTR_DB_CONNECTION_STRING=_r.ATTR_DB_CLIENT_CONNECTION_STATE=_r.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0;_r.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name";_r.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state";_r.ATTR_DB_CONNECTION_STRING="db.connection_string";_r.ATTR_DB_NAME="db.name";_r.ATTR_DB_STATEMENT="db.statement";_r.ATTR_DB_SYSTEM="db.system";_r.ATTR_DB_USER="db.user";_r.ATTR_NET_PEER_NAME="net.peer.name";_r.ATTR_NET_PEER_PORT="net.peer.port";_r.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle";_r.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used";_r.DB_SYSTEM_VALUE_POSTGRESQL="postgresql";_r.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count";_r.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests"});var Rte=w(fP=>{"use strict";Object.defineProperty(fP,"__esModule",{value:!0});fP.SpanNames=void 0;var Y$t;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(Y$t=fP.SpanNames||(fP.SpanNames={}))});var gVe=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 sS=(Ce(),ke(Ye)),vG=vte(),nd=(Nn(),ke(Mr)),ds=Ate(),s_=Yt(),lVe=Rte();function dVe(e,t){if(!t)return lVe.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:fVe(t.text);return`${lVe.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}Hn.getQuerySpanName=dVe;function fVe(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=fVe;function pVe(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}Hn.parseAndMaskConnectionString=pVe;function wte(e){if("connectionString"in e&&e.connectionString)return pVe(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}Hn.getConnectionString=wte;function AG(e){if(Number.isInteger(e))return e}function hVe(e,t){let n={};return t&s_.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:wte(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:AG(e.port)}),t&s_.SemconvStability.STABLE&&(n={...n,[nd.ATTR_DB_SYSTEM_NAME]:nd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[nd.ATTR_DB_NAMESPACE]:e.namespace,[nd.ATTR_SERVER_ADDRESS]:e.host,[nd.ATTR_SERVER_PORT]:AG(e.port)}),n}Hn.getSemanticAttributesFromConnection=hVe;function J$t(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[vG.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[vG.AttributeNames.MAX_CLIENT]:e.maxClient};return t&s_.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]:wte(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||AG(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&s_.SemconvStability.STABLE&&(r={...r,[nd.ATTR_DB_SYSTEM_NAME]:nd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[nd.ATTR_DB_NAMESPACE]:e.namespace,[nd.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[nd.ATTR_SERVER_PORT]:Number(n?.port)||AG(e.port)}),r}Hn.getSemanticAttributesFromPoolConnection=J$t;function X$t(e){return e.requireParentSpan===!0&&sS.trace.getSpan(sS.context.active())===void 0}Hn.shouldSkipInstrumentation=X$t;function Q$t(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=dVe(s,r),a=e.startSpan(o,{kind:sS.SpanKind.CLIENT,attributes:hVe(i,n)});if(!r)return a;if(r.text&&(n&s_.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&s_.SemconvStability.STABLE&&a.setAttribute(nd.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(vG.AttributeNames.PG_VALUES,c)}catch(c){sS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(vG.AttributeNames.PG_PLAN,r.name),a}Hn.handleConfigQuery=Q$t;function mVe(e,t,n){typeof e.responseHook=="function"&&(0,s_.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&sS.diag.error("Error running response hook",r)},!0)}Hn.handleExecutionResult=mVe;function $$t(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[nd.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(RG(o)),t.setStatus({code:sS.SpanStatusCode.ERROR,message:o.message})):mVe(e,t,a),i(),t.end(),n.call(this,o,a)}}Hn.patchCallback=$$t;function een(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=een;function ten(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=ten;function nen(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(RG(r)),e.setStatus({code:sS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}Hn.patchCallbackPGPool=nen;function ren(e,t){return function(r){r&&(r instanceof Error&&e.recordException(RG(r)),e.setStatus({code:sS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}Hn.patchClientConnectCallback=ren;function ien(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}Hn.getErrorMessage=ien;function sen(e){return typeof e=="object"&&typeof e?.text=="string"}Hn.isObjectWithTextString=sen;function RG(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}Hn.sanitizedErrorMessage=RG});var yVe=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 vVe=w(kG=>{"use strict";Object.defineProperty(kG,"__esModule",{value:!0});kG.PgInstrumentation=void 0;var Lc=Yt(),Ur=(Ce(),ke(Ye)),SVe=uVe(),Zi=gVe(),EVe=ute(),bVe=yVe(),_Ve=Rte(),wG=fr(),pf=(Nn(),ke(Mr)),pP=Ate();function rw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var kte=class extends Lc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(bVe.PACKAGE_NAME,bVe.PACKAGE_VERSION,t),this._semconvStability=(0,Lc.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(pf.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(pP.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(pP.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(Zi.shouldSkipInstrumentation(s)||s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(_Ve.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 TVe(o,a)}}recordOperationDuration(t,n){let r={},i=[pf.ATTR_DB_NAMESPACE,pf.ATTR_ERROR_TYPE,pf.ATTR_SERVER_PORT,pf.ATTR_SERVER_ADDRESS,pf.ATTR_DB_OPERATION_NAME];this._semconvStability&Lc.SemconvStability.OLD&&i.push(pP.ATTR_DB_SYSTEM),this._semconvStability&Lc.SemconvStability.STABLE&&i.push(pf.ATTR_DB_SYSTEM_NAME),i.forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,wG.hrTimeToMilliseconds)((0,wG.hrTimeDuration)(n,(0,wG.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,wG.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={[pP.ATTR_DB_SYSTEM]:pP.DB_SYSTEM_VALUE_POSTGRESQL,[pf.ATTR_DB_NAMESPACE]:this.database,[pf.ATTR_SERVER_PORT]:this.connectionParameters.port,[pf.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};u?.text&&(l[pf.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,EVe.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,EVe.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,Lc.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[SVe.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[SVe.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(_Ve.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 TVe(o,a)}}};kG.PgInstrumentation=kte;function TVe(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 AVe=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.AttributeNames=iw.PgInstrumentation=void 0;var oen=vVe();Object.defineProperty(iw,"PgInstrumentation",{enumerable:!0,get:function(){return oen.PgInstrumentation}});var aen=vte();Object.defineProperty(iw,"AttributeNames",{enumerable:!0,get:function(){return aen.AttributeNames}})});var RVe,wVe,kVe,cen,IVe,xVe=v(()=>{RVe=Se(AVe(),1);sr();wVe="Postgres",kVe=rt(wVe,RVe.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),cen=(e=>({name:wVe,setupOnce(){kVe(e)}})),IVe=cen});var oS,xte,OVe,uen,len,NVe,Ite,den,PVe,CVe=v(()=>{Ce();oS=Se(Yt(),1);Nn();st();sr();Yb();xte="PostgresJs",OVe=[">=3.0.0 <4"],uen=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,len=Symbol.for("sentry.query.from.instrumented.sql"),NVe=rt(xte,e=>new Ite({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),Ite=class extends oS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Pn,t)}init(){let t=new oS.InstrumentationNodeModuleDefinition("postgres",OVe,n=>{try{return this._patchPostgres(n)}catch(r){return yo&&Y.error("Failed to patch postgres module:",r),n}},n=>n);return["src","cf/src","cjs/src"].forEach(n=>{t.files.push(new oS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,OVe,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 yo&&Y.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 yo&&Y.warn("postgres() did not return a valid instance"),a;let c=i.getConfig();return q7(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:(cN(t,"default",s),t)}_shouldCreateSpans(){let t=this.getConfig();return Ft.getSpan(Ve.active())!==void 0||!t.requireParentSpan}_setOperationName(t,n,r){if(r){t.setAttribute(lA,r);return}let i=n?.match(uen);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({[mb]:"postgres",[iJ]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,oS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),yo&&Y.error(`Error in requestHook for ${xte} 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){yo&&Y.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(sJ,h?.[0]?.code||"unknown"),a.setAttribute(oJ,h?.[0]?.name||"unknown"),n._setOperationName(a,o),a.end()}catch(m){yo&&Y.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}},den=(e=>({name:xte,setupOnce(){NVe(e)}})),PVe=den});var MVe=w(hP=>{"use strict";Object.defineProperty(hP,"__esModule",{value:!0});hP.SeverityNumber=void 0;var fen;(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"})(fen=hP.SeverityNumber||(hP.SeverityNumber={}))});var xG=w(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.NOOP_LOGGER=sw.NoopLogger=void 0;var IG=class{emit(t){}};sw.NoopLogger=IG;sw.NOOP_LOGGER=new IG});var NG=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.NOOP_LOGGER_PROVIDER=ow.NoopLoggerProvider=void 0;var pen=xG(),OG=class{getLogger(t,n,r){return new pen.NoopLogger}};ow.NoopLoggerProvider=OG;ow.NOOP_LOGGER_PROVIDER=new OG});var Nte=w(PG=>{"use strict";Object.defineProperty(PG,"__esModule",{value:!0});PG.ProxyLogger=void 0;var hen=xG(),Ote=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):hen.NOOP_LOGGER}};PG.ProxyLogger=Ote});var Cte=w(CG=>{"use strict";Object.defineProperty(CG,"__esModule",{value:!0});CG.ProxyLoggerProvider=void 0;var men=NG(),gen=Nte(),Pte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new gen.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:men.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)}};CG.ProxyLoggerProvider=Pte});var DVe=w(MG=>{"use strict";Object.defineProperty(MG,"__esModule",{value:!0});MG._globalThis=void 0;MG._globalThis=typeof globalThis=="object"?globalThis:global});var LVe=w(DG=>{"use strict";Object.defineProperty(DG,"__esModule",{value:!0});DG._globalThis=void 0;var yen=DVe();Object.defineProperty(DG,"_globalThis",{enumerable:!0,get:function(){return yen._globalThis}})});var UVe=w(LG=>{"use strict";Object.defineProperty(LG,"__esModule",{value:!0});LG._globalThis=void 0;var Sen=LVe();Object.defineProperty(LG,"_globalThis",{enumerable:!0,get:function(){return Sen._globalThis}})});var FVe=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 Een=UVe();Qp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Qp._global=Een._globalThis;function ben(e,t,n){return r=>r===e?t:n}Qp.makeGetter=ben;Qp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var HVe=w(UG=>{"use strict";Object.defineProperty(UG,"__esModule",{value:!0});UG.LogsAPI=void 0;var rd=FVe(),_en=NG(),jVe=Cte(),Mte=class e{constructor(){this._proxyLoggerProvider=new jVe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return rd._global[rd.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(rd._global[rd.GLOBAL_LOGS_API_KEY]=(0,rd.makeGetter)(rd.API_BACKWARDS_COMPATIBILITY_VERSION,t,_en.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=rd._global[rd.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(rd._global,rd.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete rd._global[rd.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new jVe.ProxyLoggerProvider}};UG.LogsAPI=Mte});var Dte=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 Ten=MVe();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Ten.SeverityNumber}});var qVe=xG();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return qVe.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return qVe.NoopLogger}});var BVe=NG();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return BVe.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return BVe.NoopLoggerProvider}});var ven=Nte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return ven.ProxyLogger}});var Aen=Cte();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Aen.ProxyLoggerProvider}});var Ren=HVe();Bo.logs=Ren.LogsAPI.getInstance()});var GVe=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.disableInstrumentations=aw.enableInstrumentations=void 0;function wen(e,t,n,r){for(let i=0,s=e.length;it.disable())}aw.disableInstrumentations=ken});var WVe=w(FG=>{"use strict";Object.defineProperty(FG,"__esModule",{value:!0});FG.registerInstrumentations=void 0;var zVe=(Ce(),ke(Ye)),Ien=Dte(),VVe=GVe();function xen(e){let t=e.tracerProvider||zVe.trace.getTracerProvider(),n=e.meterProvider||zVe.metrics.getMeterProvider(),r=e.loggerProvider||Ien.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,VVe.enableInstrumentations)(i,t,n,r),()=>{(0,VVe.disableInstrumentations)(i)}}FG.registerInstrumentations=xen});var t2e=w(jG=>{"use strict";Object.defineProperty(jG,"__esModule",{value:!0});jG.satisfies=void 0;var jte=(Ce(),ke(Ye)),XVe=/^(?: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-]+)*))?$/,Oen=/^(?<|>|=|==|<=|>=|~|\^|~>)?\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-]+)*))?$/,Nen={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function Pen(e,t,n){if(!Cen(e))return jte.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=Uen(e);if(!r)return!1;let i=[],s=QVe(r,t,i,n);return s&&!n?.includePrerelease?Den(r,i):s}jG.satisfies=Pen;function Cen(e){return typeof e=="string"&&XVe.test(e)}function QVe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Lte(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=itn(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Lte(e,s,n,r))return!1;return!0}return Lte(e,t,n,r)}function Lte(e,t,n,r){if(t=Len(t,r),t.includes(" "))return QVe(e,t,n,r);{let i=Fen(t);return n.push(i),Men(e,i)}}function Men(e,t){if(t.invalid)return!1;if(!t.version||Fte(t.version))return!0;let n=ZVe(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=ZVe(r,i)}return Nen[t.op]?.includes(n)}function Den(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Len(e,t){return e=e.trim(),e=ntn(e,t),e=ttn(e),e=rtn(e,t),e=e.trim(),e}function Uc(e){return!e||e.toLowerCase()==="x"||e==="*"}function Uen(e){let t=e.match(XVe);if(!t){jte.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 Fen(e){if(!e)return{};let t=e.match(Oen);if(!t)return jte.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 Fte(e){return e==="*"||e==="x"||e==="X"}function KVe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function jen(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 Hen(e,t){if(Fte(e)||Fte(t))return 0;let[n,r]=jen(KVe(e),KVe(t));return n>r?1:n)?=?)",YVe=`(?:${e2e}|${qen})`,Gen=`(?:-(${YVe}(?:\\.${YVe})*))`,JVe=`${$Ve}+`,zen=`(?:\\+(${JVe}(?:\\.${JVe})*))`,Ute=`${e2e}|x|X|\\*`,mP=`[v=\\s]*(${Ute})(?:\\.(${Ute})(?:\\.(${Ute})(?:${Gen})?${zen}?)?)?`,Ven=`^${Ben}\\s*${mP}$`,Wen=new RegExp(Ven),Ken=`^\\s*(${mP})\\s+-\\s+(${mP})\\s*$`,Zen=new RegExp(Ken),Yen="(?:~>?)",Jen=`^${Yen}${mP}$`,Xen=new RegExp(Jen),Qen="(?:\\^)",$en=`^${Qen}${mP}$`,etn=new RegExp($en);function ttn(e){let t=Xen;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 ntn(e,t){let n=etn,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 rtn(e,t){let n=Wen;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 itn(e,t){let n=Zen;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 Hte=w(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.massUnwrap=fa.unwrap=fa.massWrap=fa.wrap=void 0;var Fc=console.error.bind(console);function gP(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 stn=(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 gP(i,"__original",r),gP(i,"__unwrap",()=>{e[t]===i&&gP(e,t,r)}),gP(i,"__wrapped",!0),gP(e,t,i),i};fa.wrap=stn;var otn=(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,fa.wrap)(r,i,n)})})};fa.massWrap=otn;var atn=(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}};fa.unwrap=atn;var ctn=(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,fa.unwrap)(n,r)})})};fa.massUnwrap=ctn;function yP(e){e&&e.logger&&(typeof e.logger!="function"?Fc("new logger isn't a function, not replacing"):Fc=e.logger)}fa.default=yP;yP.wrap=fa.wrap;yP.massWrap=fa.massWrap;yP.unwrap=fa.unwrap;yP.massUnwrap=fa.massUnwrap});var n2e=w(qG=>{"use strict";Object.defineProperty(qG,"__esModule",{value:!0});qG.InstrumentationAbstract=void 0;var qte=(Ce(),ke(Ye)),utn=Dte(),HG=Hte(),Bte=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=qte.diag.createComponentLogger({namespace:t}),this._tracer=qte.trace.getTracer(t,n),this._meter=qte.metrics.getMeter(t,n),this._logger=utn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=HG.wrap;_unwrap=HG.unwrap;_massWrap=HG.massWrap;_massUnwrap=HG.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)}}};qG.InstrumentationAbstract=Bte});var r2e=w(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});aS.ModuleNameTrie=aS.ModuleNameSeparator=void 0;aS.ModuleNameSeparator="/";var BG=class{hooks=[];children=new Map},Gte=class{_trie=new BG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(aS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new BG,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(aS.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))}};aS.ModuleNameTrie=Gte});var s2e=w(GG=>{"use strict";Object.defineProperty(GG,"__esModule",{value:!0});GG.RequireInTheMiddleSingleton=void 0;var ltn=_b(),i2e=Z("path"),zte=r2e(),dtn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),Vte=class e{_moduleNameTrie=new zte.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new ltn.Hook(null,{internals:!0},(t,n,r)=>{let i=ftn(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 dtn?new e:this._instance=this._instance??new e}};GG.RequireInTheMiddleSingleton=Vte;function ftn(e){return i2e.sep!==zte.ModuleNameSeparator?e.split(i2e.sep).join(zte.ModuleNameSeparator):e}});var l2e=w(SP=>{var o2e=[],Wte=new WeakMap,a2e=new WeakMap,c2e=new Map,u2e=[],ptn={set(e,t,n){let r=Wte.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=a2e.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=Wte.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function htn(e,t,n,r,i){c2e.set(e,i),Wte.set(t,n),a2e.set(t,r);let s=new Proxy(t,ptn);o2e.forEach(o=>o(e,s,i)),u2e.push([e,s,i])}SP.register=htn;SP.importHooks=o2e;SP.specifiers=c2e;SP.toHook=u2e});var h2e=w((SLr,uw)=>{var d2e=Z("path"),mtn=gO(),{fileURLToPath:gtn}=Z("url"),{MessageChannel:ytn}=Z("worker_threads"),{isBuiltin:Kte}=Z("module");Kte||(Kte=()=>!0);var{importHooks:Zte,specifiers:Stn,toHook:Etn}=l2e();function f2e(e){Zte.push(e),Etn.forEach(([t,n,r])=>e(t,n,r))}function p2e(e){let t=Zte.indexOf(e);t>-1&&Zte.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 Yte;function btn(){let{port1:e,port2:t}=new ytn,n=0,r;Yte=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 EP(e,t,n){if(!(this instanceof EP))return new EP(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;Yte&&Array.isArray(e)&&Yte(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);Kte(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=gtn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=mtn(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(Stn.get(a)))cw(n,s,i,l);else if(r){let f=i+d2e.sep+d2e.relative(l,u);cw(n,s,f,l)}}else d===o&&cw(n,s,o,l);else cw(n,s,i,l)},f2e(this._iitmHook)}EP.prototype.unhook=function(){p2e(this._iitmHook)};uw.exports=EP;uw.exports.Hook=EP;uw.exports.addHook=f2e;uw.exports.removeHook=p2e;uw.exports.createAddHookMessageChannel=btn});var Jte=w(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0});cS.isWrapped=cS.safeExecuteInTheMiddleAsync=cS.safeExecuteInTheMiddle=void 0;function _tn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}cS.safeExecuteInTheMiddle=_tn;async function Ttn(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}}cS.safeExecuteInTheMiddleAsync=Ttn;function vtn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}cS.isWrapped=vtn});var y2e=w(zG=>{"use strict";Object.defineProperty(zG,"__esModule",{value:!0});zG.InstrumentationBase=void 0;var bP=Z("path"),m2e=Z("util"),Atn=t2e(),Xte=Hte(),Rtn=n2e(),wtn=s2e(),ktn=h2e(),_P=(Ce(),ke(Ye)),Itn=_b(),xtn=Z("fs"),Otn=Jte(),Qte=class extends Rtn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=wtn.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,Otn.isWrapped)(t[n])&&this._unwrap(t,n),m2e.types.isProxy(t)){let i=(0,Xte.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Xte.wrap)(t,n,r)};_unwrap=(t,n)=>m2e.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Xte.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{_P.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){_P.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{_P.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){_P.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=Z.resolve(n);Z.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,xtn.readFileSync)(bP.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{_P.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 g2e(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=bP.normalize(r);return o.filter(u=>u.name===a).filter(u=>g2e(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&&bP.isAbsolute(a)){let u=bP.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=bP.isAbsolute(t.name)?new Itn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new ktn.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}};zG.InstrumentationBase=Qte;function g2e(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Atn.satisfies)(t,r,{includePrerelease:n}))}});var S2e=w(VG=>{"use strict";Object.defineProperty(VG,"__esModule",{value:!0});VG.normalize=void 0;var Ntn=Z("path");Object.defineProperty(VG,"normalize",{enumerable:!0,get:function(){return Ntn.normalize}})});var E2e=w(lw=>{"use strict";Object.defineProperty(lw,"__esModule",{value:!0});lw.normalize=lw.InstrumentationBase=void 0;var Ptn=y2e();Object.defineProperty(lw,"InstrumentationBase",{enumerable:!0,get:function(){return Ptn.InstrumentationBase}});var Ctn=S2e();Object.defineProperty(lw,"normalize",{enumerable:!0,get:function(){return Ctn.normalize}})});var $te=w(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.normalize=dw.InstrumentationBase=void 0;var b2e=E2e();Object.defineProperty(dw,"InstrumentationBase",{enumerable:!0,get:function(){return b2e.InstrumentationBase}});Object.defineProperty(dw,"normalize",{enumerable:!0,get:function(){return b2e.normalize}})});var _2e=w(WG=>{"use strict";Object.defineProperty(WG,"__esModule",{value:!0});WG.InstrumentationNodeModuleDefinition=void 0;var ene=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||[]}};WG.InstrumentationNodeModuleDefinition=ene});var T2e=w(KG=>{"use strict";Object.defineProperty(KG,"__esModule",{value:!0});KG.InstrumentationNodeModuleFile=void 0;var Mtn=$te(),tne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,Mtn.normalize)(t)}};KG.InstrumentationNodeModuleFile=tne});var v2e=w(o_=>{"use strict";Object.defineProperty(o_,"__esModule",{value:!0});o_.semconvStabilityFromStr=o_.SemconvStability=void 0;var ZG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(ZG=o_.SemconvStability||(o_.SemconvStability={}));function Dtn(e,t){let n=ZG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=ZG.DUPLICATE;break}else i.toLowerCase()===e&&(n=ZG.STABLE);return n}o_.semconvStabilityFromStr=Dtn});var R2e=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 Ltn=WVe();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return Ltn.registerInstrumentations}});var Utn=$te();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return Utn.InstrumentationBase}});var Ftn=_2e();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return Ftn.InstrumentationNodeModuleDefinition}});var jtn=T2e();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return jtn.InstrumentationNodeModuleFile}});var nne=Jte();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return nne.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return nne.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return nne.safeExecuteInTheMiddleAsync}});var A2e=v2e();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return A2e.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return A2e.semconvStabilityFromStr}})});function Btn(){let e=fw[ine];return e?.helper?e.helper:fw[rne]?.helper}function Gtn(e){let t={helper:e};fw[ine]=t,fw[rne]=t}function ztn(){delete fw[ine],delete fw[rne]}function Ktn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function I2e(e,t,n,r,i){if(x2e(t.name,i))return;let s={attributes:t.attributes,kind:Ktn(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)I2e(e,c,n,r,i);o.end(t.endTime)})}function w2e(e,t){return Ytn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function Ytn(e){return e!=null&&typeof e.then=="function"}function x2e(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var YG,Htn,qtn,rne,ine,fw,Vtn,Wtn,Ztn,O2e,k2e,Jtn,Xtn,N2e,P2e=v(()=>{Ce();YG=Se(R2e(),1);Ce();Htn={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"}},qtn=Htn.version.split(".")[0],rne="PRISMA_INSTRUMENTATION",ine=`V${qtn}_PRISMA_INSTRUMENTATION`,fw=globalThis;Vtn=process.env.PRISMA_SHOW_ALL_TRACES==="true",Wtn="00-10-10-00";Ztn=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:e,ignoreSpanTypes:t}){this.tracerProvider=e,this.ignoreSpanTypes=t}isEnabled(){return!0}getTraceParent(e){let t=Ft.getSpanContext(e??Ve.active());return t?`00-${t.traceId}-${t.spanId}-0${t.traceFlags}`:Wtn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)I2e(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!Vtn)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(x2e(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return w2e(s,t(s,r))}return n.startActiveSpan(i,e,s=>w2e(s,t(s,r)))}};O2e={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},k2e=O2e.version,Jtn=O2e.name,Xtn="@prisma/client",N2e=class extends YG.InstrumentationBase{tracerProvider;constructor(e={}){super(Jtn,k2e,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new YG.InstrumentationNodeModuleDefinition(Xtn,[k2e])]}enable(){let e=this._config;Gtn(new Ztn({tracerProvider:this.tracerProvider??Ft.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){ztn()}isEnabled(){return Btn()!==void 0}}});function Qtn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function M2e(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function $tn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var C2e,sne,enn,D2e,L2e=v(()=>{Ce();P2e();st();sr();C2e="Prisma";sne=class extends N2e{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=M2e();Qtn(t)&&(t.createEngineSpan=n=>{let r=Ft.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=$tn(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:ja.SAMPLED}})),d=Ft.setSpanContext(Ve.active(),{traceId:u,spanId:a,traceFlags:ja.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}})}};enn=rt(C2e,e=>new sne(e)),D2e=e=>({name:C2e,setupOnce(){enn(e)},setup(t){M2e()&&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 U2e=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 one=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 F2e=w(JG=>{"use strict";Object.defineProperty(JG,"__esModule",{value:!0});JG.ATTR_HTTP_METHOD=void 0;JG.ATTR_HTTP_METHOD="http.method"});var ane=w(TP=>{"use strict";Object.defineProperty(TP,"__esModule",{value:!0});TP.AttributeNames=void 0;var tnn;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(tnn=TP.AttributeNames||(TP.AttributeNames={}))});var q2e=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 j2e=(Nn(),ke(Mr)),nnn=F2e(),vP=one(),uS=ane(),H2e=Yt();function rnn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=rnn;var inn=e=>typeof e=="string"&&vP.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=inn;var snn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=snn;var onn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=onn;var ann=e=>!Array.isArray(e);Xs.isPatchableExtMethod=ann;var cnn=(e,t,n)=>{let r={[j2e.ATTR_HTTP_ROUTE]:e.path};t&H2e.SemconvStability.OLD&&(r[nnn.ATTR_HTTP_METHOD]=e.method),t&H2e.SemconvStability.STABLE&&(r[j2e.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[uS.AttributeNames.HAPI_TYPE]=vP.HapiLayerType.PLUGIN,r[uS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[uS.AttributeNames.HAPI_TYPE]=vP.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=cnn;var unn=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[uS.AttributeNames.EXT_TYPE]:e,[uS.AttributeNames.HAPI_TYPE]:vP.HapiLayerType.EXT,[uS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[uS.AttributeNames.EXT_TYPE]:e,[uS.AttributeNames.HAPI_TYPE]:vP.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=unn;var lnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=lnn});var z2e=w(XG=>{"use strict";Object.defineProperty(XG,"__esModule",{value:!0});XG.HapiInstrumentation=void 0;var pl=(Ce(),ke(Ye)),B2e=fr(),AP=Yt(),G2e=U2e(),RP=one(),Mm=q2e(),cne=class extends AP.InstrumentationBase{_semconvStability;constructor(t={}){super(G2e.PACKAGE_NAME,G2e.PACKAGE_VERSION,t),this._semconvStability=(0,AP.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new AP.InstrumentationNodeModuleDefinition(RP.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,AP.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,AP.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(pl.trace.getSpan(pl.context.active())===void 0)return await s.call(this,...o);let a=(0,B2e.getRPCMetadata)(pl.context.active());a?.type===B2e.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 pl.context.with(pl.trace.setSpan(pl.context.active(),u),()=>s.call(this,...o))}catch(l){throw u.recordException(l),u.setStatus({code:pl.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}};XG.HapiInstrumentation=cne});var V2e=w(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.AttributeNames=hw.HapiInstrumentation=void 0;var dnn=z2e();Object.defineProperty(hw,"HapiInstrumentation",{enumerable:!0,get:function(){return dnn.HapiInstrumentation}});var fnn=ane();Object.defineProperty(hw,"AttributeNames",{enumerable:!0,get:function(){return fnn.AttributeNames}})});var W2e,K2e,Z2e,pnn,Y2e,J2e=v(()=>{W2e=Se(V2e(),1);sr();K2e="Hapi",Z2e=rt(K2e,()=>new W2e.HapiInstrumentation),pnn=(()=>({name:K2e,setupOnce(){Z2e()}})),Y2e=pnn});var lS,wP,une=v(()=>{lS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},wP={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var $G,hnn,mnn,QG,X2e=v(()=>{Ce();$G=Se(Yt(),1);st();une();hnn="@sentry/instrumentation-hono",mnn="0.0.1",QG=class extends $G.InstrumentationBase{constructor(t={}){super(hnn,mnn,t)}init(){return[new $G.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(Ft.setSpan(Ve.active(),o),()=>n._safeExecute(()=>{let a=t.apply(this,[r,i]);if(ia(a))return a.then(c=>{let u=n._determineHandlerType(c);return o.setAttributes({[lS.HONO_TYPE]:u,[lS.HONO_NAME]:u===wP.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[lS.HONO_TYPE]:c,[lS.HONO_NAME]:c===wP.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 ia(i)?i.then(()=>n(),s=>r(s)):n(),i}catch(i){throw r(i),i}}_determineHandlerType(t){return t===void 0?wP.MIDDLEWARE:wP.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function gnn(e){let t=vt(e).data,n=t[lS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[lS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Bl()){yo&&Y.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[um],s=t[gb];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var Q2e,$2e,ynn,eWe,tWe=v(()=>{Nn();st();sr();Yb();une();X2e();Q2e="Hono";$2e=rt(Q2e,()=>new QG({responseHook:e=>{gnn(e)}})),ynn=(()=>({name:Q2e,setupOnce(){$2e()}})),eWe=ynn});var ez=w(kP=>{"use strict";Object.defineProperty(kP,"__esModule",{value:!0});kP.KoaLayerType=void 0;var Snn;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(Snn=kP.KoaLayerType||(kP.KoaLayerType={}))});var nWe=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 lne=w(IP=>{"use strict";Object.defineProperty(IP,"__esModule",{value:!0});IP.AttributeNames=void 0;var Enn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(Enn=IP.AttributeNames||(IP.AttributeNames={}))});var iWe=w(gw=>{"use strict";Object.defineProperty(gw,"__esModule",{value:!0});gw.isLayerIgnored=gw.getMiddlewareMetadata=void 0;var rWe=ez(),tz=lne(),bnn=(Nn(),ke(Mr)),_nn=(e,t,n,r)=>n?{attributes:{[tz.AttributeNames.KOA_NAME]:r?.toString(),[tz.AttributeNames.KOA_TYPE]:rWe.KoaLayerType.ROUTER,[bnn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[tz.AttributeNames.KOA_NAME]:t.name??"middleware",[tz.AttributeNames.KOA_TYPE]:rWe.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};gw.getMiddlewareMetadata=_nn;var Tnn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));gw.isLayerIgnored=Tnn});var sWe=w(nz=>{"use strict";Object.defineProperty(nz,"__esModule",{value:!0});nz.kLayerPatched=void 0;nz.kLayerPatched=Symbol("koa-layer-patched")});var dWe=w(rz=>{"use strict";Object.defineProperty(rz,"__esModule",{value:!0});rz.KoaInstrumentation=void 0;var eh=(Ce(),ke(Ye)),xP=Yt(),oWe=ez(),aWe=nWe(),cWe=iWe(),uWe=fr(),lWe=sWe(),dne=class extends xP.InstrumentationBase{constructor(t={}){super(aWe.PACKAGE_NAME,aWe.PACKAGE_VERSION,t)}init(){return new xP.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,xP.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,xP.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,cWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,uWe.getRPCMetadata)(eh.context.active());l?.type===uWe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,xP.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()}})})}};rz.KoaInstrumentation=dne});var fWe=w(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});dS.KoaLayerType=dS.AttributeNames=dS.KoaInstrumentation=void 0;var vnn=dWe();Object.defineProperty(dS,"KoaInstrumentation",{enumerable:!0,get:function(){return vnn.KoaInstrumentation}});var Ann=lne();Object.defineProperty(dS,"AttributeNames",{enumerable:!0,get:function(){return Ann.AttributeNames}});var Rnn=ez();Object.defineProperty(dS,"KoaLayerType",{enumerable:!0,get:function(){return Rnn.KoaLayerType}})});var pWe,hWe,mWe,wnn,gWe,yWe=v(()=>{pWe=Se(fWe(),1);Nn();st();sr();Yb();hWe="Koa",mWe=rt(hWe,pWe.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()===Bl()){yo&&Y.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}`)}})),wnn=((e={})=>({name:hWe,setupOnce(){mWe(e)}})),gWe=wnn});var fne=w(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.ConnectNames=hf.ConnectTypes=hf.AttributeNames=void 0;var knn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(knn=hf.AttributeNames||(hf.AttributeNames={}));var Inn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Inn=hf.ConnectTypes||(hf.ConnectTypes={}));var xnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})(xnn=hf.ConnectNames||(hf.ConnectNames={}))});var SWe=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 EWe=w(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});iz._LAYERS_STORE_PROPERTY=void 0;iz._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var bWe=w(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0});pS.generateRoute=pS.replaceCurrentStackRoute=pS.addNewStackLayer=void 0;var Onn=(Ce(),ke(Ye)),fS=EWe(),Nnn=e=>{Array.isArray(e[fS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,fS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[fS._LAYERS_STORE_PROPERTY].push("/");let t=e[fS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[fS._LAYERS_STORE_PROPERTY].length?e[fS._LAYERS_STORE_PROPERTY].pop():Onn.diag.warn("Connect: Trying to pop the stack multiple time")}};pS.addNewStackLayer=Nnn;var Pnn=(e,t)=>{t&&e[fS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};pS.replaceCurrentStackRoute=Pnn;var Cnn=e=>e[fS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);pS.generateRoute=Cnn});var vWe=w(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.ConnectInstrumentation=hS.ANONYMOUS_NAME=void 0;var Mnn=(Ce(),ke(Ye)),_We=fr(),Sw=fne(),TWe=SWe(),sz=Yt(),Dnn=(Nn(),ke(Mr)),pne=bWe();hS.ANONYMOUS_NAME="anonymous";var hne=class extends sz.InstrumentationBase{constructor(t={}){super(TWe.PACKAGE_NAME,TWe.PACKAGE_VERSION,t)}init(){return[new sz.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,sz.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,sz.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||hS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[Dnn.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,pne.replaceCurrentStackRoute)(u,t);let f=(0,_We.getRPCMetadata)(Mnn.context.active());t&&f?.type===_We.RPCType.HTTP&&(f.route=(0,pne.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||hS.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,pne.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)}}};hS.ConnectInstrumentation=hne});var RWe=w(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.ConnectTypes=id.ConnectNames=id.AttributeNames=id.ANONYMOUS_NAME=id.ConnectInstrumentation=void 0;var AWe=vWe();Object.defineProperty(id,"ConnectInstrumentation",{enumerable:!0,get:function(){return AWe.ConnectInstrumentation}});Object.defineProperty(id,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return AWe.ANONYMOUS_NAME}});var mne=fne();Object.defineProperty(id,"AttributeNames",{enumerable:!0,get:function(){return mne.AttributeNames}});Object.defineProperty(id,"ConnectNames",{enumerable:!0,get:function(){return mne.ConnectNames}});Object.defineProperty(id,"ConnectTypes",{enumerable:!0,get:function(){return mne.ConnectTypes}})});var wWe,kWe,IWe,Lnn,xWe,OWe=v(()=>{wWe=Se(RWe(),1);sr();kWe="Connect",IWe=rt(kWe,()=>new wWe.ConnectInstrumentation),Lnn=(()=>({name:kWe,setupOnce(){IWe()}})),xWe=Lnn});var NWe=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 PWe=w(Ew=>{"use strict";Object.defineProperty(Ew,"__esModule",{value:!0});Ew.once=Ew.getSpanName=void 0;function Unn(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=Unn;var Fnn=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};Ew.once=Fnn});var CWe=w(bw=>{"use strict";Object.defineProperty(bw,"__esModule",{value:!0});bw.PACKAGE_NAME=bw.PACKAGE_VERSION=void 0;bw.PACKAGE_VERSION="0.33.0";bw.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var FWe=w(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.TediousInstrumentation=gS.INJECTED_CTX=void 0;var _w=(Ce(),ke(Ye)),jnn=Z("events"),th=Yt(),a_=(Nn(),ke(Mr)),mS=NWe(),MWe=PWe(),DWe=CWe(),UWe=Symbol("opentelemetry.instrumentation-tedious.current-database");gS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var LWe=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function oz(e){Object.defineProperty(this,UWe,{value:e,writable:!0})}var gne=class e extends th.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super(DWe.PACKAGE_NAME,DWe.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 LWe)(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 LWe)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return oz.call(this,this.config?.options?.database),this.removeListener("databaseChange",oz),this.on("databaseChange",oz),this.once("end",()=>{this.removeListener("databaseChange",oz)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||_w.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,gS.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?.[gS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof jnn.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=(b=>b.sqlTextOrProcedure==="sp_prepare"&&b.parametersByName?.stmt?.value?b.parametersByName.stmt.value:b.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&th.SemconvStability.OLD&&(p[mS.ATTR_DB_SYSTEM]=mS.DB_SYSTEM_VALUE_MSSQL,p[mS.ATTR_DB_NAME]=d,p[mS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[mS.ATTR_DB_STATEMENT]=f,p[mS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&th.SemconvStability.STABLE&&(p[a_.ATTR_DB_NAMESPACE]=d,p[a_.ATTR_DB_SYSTEM_NAME]=a_.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[a_.ATTR_DB_QUERY_TEXT]=f,p[a_.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&th.SemconvStability.OLD&&(p[mS.ATTR_NET_PEER_NAME]=this.config?.server,p[mS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&th.SemconvStability.STABLE&&(p[a_.ATTR_SERVER_ADDRESS]=this.config?.server,p[a_.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,MWe.getSpanName)(t,d,f,o.table),{kind:_w.SpanKind.CLIENT,attributes:p}),m=(0,MWe.once)(b=>{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),b&&h.setStatus({code:_w.SpanStatusCode.ERROR,message:b.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=()=>_w.context.with(_w.trace.setSpan(_w.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)}}};gS.TediousInstrumentation=gne});var jWe=w(az=>{"use strict";Object.defineProperty(az,"__esModule",{value:!0});az.TediousInstrumentation=void 0;var Hnn=FWe();Object.defineProperty(az,"TediousInstrumentation",{enumerable:!0,get:function(){return Hnn.TediousInstrumentation}})});var HWe,qnn,qWe,BWe,Bnn,GWe,zWe=v(()=>{HWe=Se(jWe(),1);st();sr();qnn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),qWe="Tedious",BWe=rt(qWe,()=>new HWe.TediousInstrumentation({})),Bnn=(()=>{let e;return{name:qWe,setupOnce(){let t=BWe();e=lN(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]||"";qnn.has(s)&&n.setAttribute(At,"auto.db.otel.tedious")}))}}}),GWe=Bnn});var VWe=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 KWe=w(cz=>{"use strict";Object.defineProperty(cz,"__esModule",{value:!0});cz.GenericPoolInstrumentation=void 0;var vw=(Ce(),ke(Ye)),c_=Yt(),WWe=VWe(),yne="generic-pool",Sne=class extends c_.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(WWe.PACKAGE_NAME,WWe.PACKAGE_VERSION,t)}init(){return[new c_.InstrumentationNodeModuleDefinition(yne,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,c_.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 c_.InstrumentationNodeModuleDefinition(yne,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,c_.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 c_.InstrumentationNodeModuleDefinition(yne,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,c_.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)})}}};cz.GenericPoolInstrumentation=Sne});var ZWe=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.GenericPoolInstrumentation=void 0;var Gnn=KWe();Object.defineProperty(uz,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return Gnn.GenericPoolInstrumentation}})});var YWe,JWe,XWe,znn,QWe,$We=v(()=>{YWe=Se(ZWe(),1);st();sr();JWe="GenericPool",XWe=rt(JWe,()=>new YWe.GenericPoolInstrumentation({})),znn=(()=>{let e;return{name:JWe,setupOnce(){let t=XWe();e=lN(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")}))}}}),QWe=znn});var Ene=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 bne=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 _ne=w(u_=>{"use strict";Object.defineProperty(u_,"__esModule",{value:!0});u_.DEFAULT_CONFIG=u_.EndOperation=void 0;var Vnn;(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"})(Vnn=u_.EndOperation||(u_.EndOperation={}));u_.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var rKe=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 Tne=(Ce(),ke(Ye)),yS=Yt(),lz=(Nn(),ke(Mr)),OP=Ene(),dz=bne();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 vne=(0,Tne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),Wnn=e=>e!==""?e:"";ps.normalizeExchange=Wnn;var Knn=e=>e.replace(/:[^:@/]*@/,":***@"),eKe=(e,t)=>e||(t==="AMQP"?5672:5671),tKe=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},nKe=e=>e||"localhost",rh=(e,t,n,r)=>n?{[t]:n}:(Tne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),Znn=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[OP.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=Znn;var Ynn=(e,t)=>{let n={[dz.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=tKe(r?.protocol);Object.assign(n,{...rh(e,dz.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=nKe(r?.hostname);t&yS.SemconvStability.OLD&&Object.assign(n,{...rh(e,OP.ATTR_NET_PEER_NAME,s,"hostname")}),t&yS.SemconvStability.STABLE&&Object.assign(n,{...rh(e,lz.ATTR_SERVER_ADDRESS,s,"hostname")});let o=eKe(r.port,i);t&yS.SemconvStability.OLD&&Object.assign(n,rh(e,OP.ATTR_NET_PEER_PORT,o,"port")),t&yS.SemconvStability.STABLE&&Object.assign(n,rh(e,lz.ATTR_SERVER_PORT,o,"port"))}else{let r=Knn(e);n[dz.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=tKe(i.protocol);Object.assign(n,{...rh(r,dz.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=nKe(i.hostname);t&yS.SemconvStability.OLD&&Object.assign(n,{...rh(r,OP.ATTR_NET_PEER_NAME,o,"hostname")}),t&yS.SemconvStability.STABLE&&Object.assign(n,{...rh(r,lz.ATTR_SERVER_ADDRESS,o,"hostname")});let a=eKe(i.port?parseInt(i.port):void 0,s);t&yS.SemconvStability.OLD&&Object.assign(n,rh(r,OP.ATTR_NET_PEER_PORT,a,"port")),t&yS.SemconvStability.STABLE&&Object.assign(n,rh(r,lz.ATTR_SERVER_PORT,a,"port"))}catch(i){Tne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=Ynn;var Jnn=e=>e.setValue(vne,!0);ps.markConfirmChannelTracing=Jnn;var Xnn=e=>e.deleteValue(vne);ps.unmarkConfirmChannelTracing=Xnn;var Qnn=e=>e.getValue(vne)===!0;ps.isConfirmChannelTracing=Qnn});var iKe=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 oKe=w(hz=>{"use strict";Object.defineProperty(hz,"__esModule",{value:!0});hz.AmqplibInstrumentation=void 0;var Yi=(Ce(),ke(Ye)),fz=fr(),pr=Yt(),$nn=Ene(),hl=bne(),jc=_ne(),hs=rKe(),sKe=iKe(),pz=[">=0.5.5 <1"],Ane=class extends pr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(sKe.PACKAGE_NAME,sKe.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",pz,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new pr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",pz,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new pr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",pz,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new pr.InstrumentationNodeModuleDefinition("amqplib",pz,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=Yi.propagation.extract(Yi.ROOT_CONTEXT,d),p=l.fields?.exchange,h;if(r._config.useLinksForConsume){let E=f?Yi.trace.getSpan(f)?.spanContext():void 0;f=void 0,E&&(h=[{context:E}])}let m=r.tracer.startSpan(`${s} process`,{kind:Yi.SpanKind.CONSUMER,attributes:{...c?.connection?.[hs.CONNECTION_ATTRIBUTES],[hl.ATTR_MESSAGING_DESTINATION]:p,[hl.ATTR_MESSAGING_DESTINATION_KIND]:hl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[hl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:l.fields?.routingKey,[$nn.ATTR_MESSAGING_OPERATION]:hl.MESSAGING_OPERATION_VALUE_PROCESS,[hl.OLD_ATTR_MESSAGING_MESSAGE_ID]:l?.properties.messageId,[hl.ATTR_MESSAGING_CONVERSATION_ID]:l?.properties.correlationId},links:h},f),{consumeHook:y}=r.getConfig();y&&(0,pr.safeExecuteInTheMiddle)(()=>y(m,{moduleVersion:t,msg:l}),E=>{E&&Yi.diag.error("amqplib instrumentation: consumerHook error",E)},!0),a?.noAck||(c[hs.CHANNEL_SPANS_NOT_ENDED].push({msg:l,timeOfConsume:(0,fz.hrTime)()}),l[hs.MESSAGE_STORED_SPAN]=m);let g=f||Yi.ROOT_CONTEXT;Yi.context.with(Yi.trace.setSpan(g,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}),g=>{g&&Yi.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,pr.safeExecuteInTheMiddle)(()=>S(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:c,isConfirmChannel:!0,confirmError:g}),b=>{b&&Yi.diag.error("amqplib instrumentation: publishConfirmHook error",b)},!0),g&&d.setStatus({code:Yi.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),d.end()}},m=(0,hs.markConfirmChannelTracing)(Yi.context.active()),y=[...arguments];return y[3]=f,y[4]=Yi.context.bind((0,hs.unmarkConfirmChannelTracing)(Yi.trace.setSpan(m,d)),h),Yi.context.with(m,n.bind(this,...y))}}getPublishPatch(t,n){let r=this;return function(s,o,a,c){if((0,hs.isConfirmChannelTracing)(Yi.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&&Yi.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:Yi.SpanKind.PRODUCER,attributes:{...i.connection[hs.CONNECTION_ATTRIBUTES],[hl.ATTR_MESSAGING_DESTINATION]:n,[hl.ATTR_MESSAGING_DESTINATION_KIND]:hl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[hl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:r,[hl.OLD_ATTR_MESSAGING_MESSAGE_ID]:s?.messageId,[hl.ATTR_MESSAGING_CONVERSATION_ID]:s?.correlationId}}),c=s??{};return c.headers=c.headers??{},Yi.propagation.inject(Yi.trace.setSpan(Yi.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:Yi.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&&Yi.diag.error("amqplib instrumentation: consumerEndHook error",o)},!0)}checkConsumeTimeoutOnChannel(t){let n=(0,fz.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(SS,"__esModule",{value:!0});SS.EndOperation=SS.DEFAULT_CONFIG=SS.AmqplibInstrumentation=void 0;var ern=oKe();Object.defineProperty(SS,"AmqplibInstrumentation",{enumerable:!0,get:function(){return ern.AmqplibInstrumentation}});var aKe=_ne();Object.defineProperty(SS,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return aKe.DEFAULT_CONFIG}});Object.defineProperty(SS,"EndOperation",{enumerable:!0,get:function(){return aKe.EndOperation}})});var uKe,lKe,trn,dKe,nrn,fKe,pKe=v(()=>{uKe=Se(cKe(),1);sr();lKe="Amqplib",trn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},dKe=rt(lKe,()=>new uKe.AmqplibInstrumentation(trn)),nrn=(()=>({name:lKe,setupOnce(){dKe()}})),fKe=nrn});var NP,Rne=v(()=>{NP="VercelAI"});function irn(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 srn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(orn(t.content),arn(t.content))}function orn(e){for(let t of e){if(!irn(t))continue;let n=lQ(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 arn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&dQ(t.toolCallId)}function crn(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 gz,rrn,hKe,mz,mKe=v(()=>{gz=Se(Yt(),1);st();Rne();rrn=[">=3.0.0 <7"],hKe=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];mz=class e extends gz.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",Pn,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new gz.InstrumentationNodeModuleDefinition("ai",rrn,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(NP),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=crn(d,a,c,f);return o[0].experimental_telemetry={...a,isEnabled:c!==void 0?c:!0,recordInputs:p,recordOutputs:h},of(()=>Reflect.apply(i,s,o),m=>{m&&typeof m=="object"&&Gs(m,"_sentry_active_span",zl())},()=>{},m=>{srn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of hKe)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=hKe.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function urn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var gKe,lrn,yKe,SKe=v(()=>{st();sr();Rne();mKe();gKe=rt(NP,()=>new mz({}));lrn=((e={})=>{let t;return{name:NP,options:e,setupOnce(){t=gKe()},afterAllSetup(n){e.force??urn(n)?TH(n):t?.callWhenPatched(()=>TH(n))}}}),yKe=lrn});var Sz,drn,yz,EKe=v(()=>{Sz=Se(Yt(),1);st();drn=[">=4.0.0 <7"],yz=class extends Sz.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Pn,t)}init(){return new Sz.InstrumentationNodeModuleDefinition("openai",drn,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(Cb(By))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return RH(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 bKe,frn,_Ke,TKe=v(()=>{st();sr();EKe();bKe=rt(By,e=>new yz(e)),frn=((e={})=>({name:By,setupOnce(){bKe(e)}})),_Ke=frn});var bz,prn,Ez,vKe=v(()=>{bz=Se(Yt(),1);st();prn=[">=0.19.2 <1.0.0"],Ez=class extends bz.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Pn,t)}init(){return new bz.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",prn,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(Cb(Gy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return wH(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 AKe,hrn,RKe,wKe=v(()=>{st();sr();vKe();AKe=rt(Gy,e=>new Ez(e)),hrn=((e={})=>({name:Gy,options:e,setupOnce(){AKe(e)}})),RKe=hrn});var Rw,kKe,_z,IKe=v(()=>{Rw=Se(Yt(),1);st();kKe=[">=0.10.0 <2"],_z=class extends Rw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Pn,t)}init(){return new Rw.InstrumentationNodeModuleDefinition("@google/genai",kKe,n=>this._patch(n),n=>n,[new Rw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",kKe,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(Cb(zy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return kH(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 cN(t,"GoogleGenAI",i),t}}});var xKe,mrn,OKe,NKe=v(()=>{st();sr();IKe();xKe=rt(zy,e=>new _z(e)),mrn=((e={})=>({name:zy,setupOnce(){xKe(e)}})),OKe=mrn});function grn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function yrn(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=grn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var ES,Tz,vz,PKe=v(()=>{ES=Se(Yt(),1);st();Tz=[">=0.1.0 <2.0.0"];vz=class extends ES.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",Pn,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 ES.InstrumentationNodeModuleDefinition(r,Tz,this._patch.bind(this),i=>i,[new ES.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,Tz,this._patch.bind(this),i=>i)]));return t.push(new ES.InstrumentationNodeModuleDefinition("langchain",Tz,this._patch.bind(this),r=>r,[new ES.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",Tz,this._patch.bind(this),r=>r)])),t}_patch(t){x7([By,Gy,zy]);let n=NH(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]=yrn(u,n))}}}});var CKe,Srn,MKe,DKe=v(()=>{st();sr();PKe();CKe=rt(IH,e=>new vz(e)),Srn=((e={})=>({name:IH,setupOnce(){CKe(e)}})),MKe=Srn});var ww,LKe,Az,UKe=v(()=>{ww=Se(Yt(),1);st();LKe=[">=0.0.0 <2.0.0"],Az=class extends ww.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Pn,t)}init(){return new ww.InstrumentationNodeModuleDefinition("@langchain/langgraph",LKe,this._patch.bind(this),n=>n,[new ww.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",LKe,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&CH(t.StateGraph.prototype,this.getConfig()),t}}});var FKe,Ern,jKe,HKe=v(()=>{st();sr();UKe();FKe=rt(PH,e=>new Az(e)),Ern=((e={})=>({name:PH,setupOnce(){FKe(e)}})),jKe=Ern});import*as BKe from"node:net";function GKe(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Dm.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&nl.error(d?.message)},!0)});let c=new Dm.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>qKe(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=>qKe(d,n,r,e,o),d=>zKe(d,r)));return c}function qKe(e,t,n,r,i){return zKe(e,n),t(e,"addDoc",brn(r,i)),t(e,"getDocs",Trn(r,i)),t(e,"setDoc",vrn(r,i)),t(e,"deleteDoc",_rn(r,i)),e}function zKe(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Dm.isWrapped)(e[n])&&t(e,n);return e}function brn(e,t){return function(r){return function(i,s){let o=wz(e,"addDoc",i);return t(o),Rz(o,()=>r(i,s))}}}function _rn(e,t){return function(r){return function(i){let s=wz(e,"deleteDoc",i.parent||i);return t(s),Rz(s,()=>r(i))}}}function Trn(e,t){return function(r){return function(i){let s=wz(e,"getDocs",i);return t(s),Rz(s,()=>r(i))}}}function vrn(e,t){return function(r){return function(i,s,o){let a=wz(e,"setDoc",i.parent||i);return t(a),Rz(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function Rz(e,t){return Ve.with(Ft.setSpan(Ve.active(),e),()=>(0,Dm.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function wz(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return Rrn(r,n),r.setAttribute(lA,t),r}function Arn(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(BKe.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 Rrn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[nJ]:t.path,[rJ]:n.name,[mb]:"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}=Arn(s);a&&(o[dJ]=a),c&&(o[fJ]=c),e.setAttributes(o)}var Dm,VKe=v(()=>{Ce();Dm=Se(Yt(),1);Nn()});function WKe(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&&nl.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Lm.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&nl.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=>wrn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>KKe(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(Ft.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 wrn(e,t,n,r,i,s){switch(KKe(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 KKe(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,ZKe=v(()=>{Ce();Lm=Se(Yt(),1)});var JKe,YKe,krn,Irn,kz,XKe=v(()=>{JKe=Se(Yt(),1);st();VKe();ZKe();YKe={},krn=[">=3.0.0 <5"],Irn=[">=6.0.0 <7"],kz=class extends JKe.InstrumentationBase{constructor(t=YKe){super("@sentry/instrumentation-firebase",Pn,t)}setConfig(t={}){super.setConfig({...YKe,...t})}init(){let t=[];return t.push(GKe(this.tracer,krn,this._wrap,this._unwrap,this.getConfig())),t.push(WKe(this.tracer,Irn,this._wrap,this._unwrap,this.getConfig())),t}}});var QKe,xrn,$Ke,Orn,e3e,t3e=v(()=>{st();sr();XKe();QKe="Firebase",xrn={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 ZA(2e3))}}},$Ke=rt(QKe,()=>new kz(xrn)),Orn=(()=>({name:QKe,setupOnce(){$Ke()}})),e3e=Orn});function n3e(){return[YHe(),OBe(),rGe(),eWe(),zGe(),sze(),yze(),xze(),aVe(),IVe(),D2e(),Y2e(),gWe(),xWe(),GWe(),QWe(),bGe(),fKe(),NGe(),MKe(),jKe(),yKe(),_Ke(),RKe(),OKe(),PVe(),e3e()]}var r3e=v(()=>{pKe();wKe();OWe();JHe();CBe();t3e();$We();NKe();sGe();J2e();tWe();_Ge();yWe();DKe();HKe();PGe();VGe();oze();Sze();Oze();TKe();xVe();CVe();L2e();cVe();zWe();SKe()});function s3e(e,t={}){e.getOptions().debug&&G$();let[n,r]=Nrn(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function Nrn(e,t={}){let n=new i3e.BasicTracerProvider({sampler:new jq(e),resource:(0,Iz.defaultResource)().merge((0,Iz.resourceFromAttributes)({[pJ]:"node",[tJ]:"sentry",[hJ]:Pn})),forceFlushTimeoutMillis:500,spanProcessors:[new Fq({timeout:Prn(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});Ft.setGlobalTracerProvider(n),Yd.setGlobalPropagator(new Uq);let r=new B$;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function Prn(e){if(e!=null){if(e>wne)return yo&&Y.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${wne}`),wne;if(e<=0||Number.isNaN(e)){yo&&Y.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var Iz,i3e,wne,o3e=v(()=>{Ce();Iz=Se(t$(),1),i3e=Se(k$(),1);Nn();st();sr();wR();Yb();wne=1e6});function a3e(){return Zq().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(RHe(),MHe())}function c3e(e){return[...a3e(),...Os(e)?n3e():[]]}function kne(e={}){return Crn(e,c3e)}function Crn(e={},t){Mb(e,"node");let n=tee({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(s3e(n,{spanProcessors:e.openTelemetrySpanProcessors}),nee()),n}var u3e=v(()=>{st();sr();wHe();DHe();r3e();o3e()});var l3e=v(()=>{u3e();st()});var y3e={};Rr(y3e,{_resetPluginRootForTests:()=>Lrn,features:()=>zo,observability:()=>One,resolvePluginRoot:()=>nn,review:()=>gf,stripWildcardAllowedOrigins:()=>xne});import{existsSync as d3e}from"node:fs";import{dirname as f3e,join as p3e}from"node:path";import{fileURLToPath as Drn}from"node:url";function g3e(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function Ine(e,t){let n=g3e(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 h3e(e,t){let n=g3e(e);return n===void 0||n===""?t:n}function Lrn(){mf=null}function nn(){if(mf!==null)return mf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return mf=e,mf;let t=m3e(process.argv[1]);if(t)return mf=t,process.env.CLAUDE_PLUGIN_ROOT=t,console.error(`[haiku] Self-resolved plugin root from argv: ${t}`),mf;try{let n=Drn(import.meta.url),r=m3e(n);if(r)return mf=r,process.env.CLAUDE_PLUGIN_ROOT=r,console.error(`[haiku] Self-resolved plugin root from module: ${r}`),mf}catch{}return mf="",mf}function m3e(e){if(!e)return null;let t=f3e(e);for(let n=0;n<6;n++){if(d3e(p3e(t,"studios"))||d3e(p3e(t,".claude-plugin","plugin.json")))return t;let r=f3e(t);if(r===t)return null;t=r}return null}function xne(){let e=gf.allowedOrigins.length,t=gf.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.`),gf.allowedOrigins.length=0,gf.allowedOrigins.push(...t)),n}var mf,zo,gf,One,Ci=v(()=>{"use strict";mf=null;zo={modelSelection:Ine("HAIKU_MODEL_SELECTION",!0),remoteReview:Ine("HAIKU_REMOTE_REVIEW",!1),telemetry:Ine("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},gf={siteUrl:h3e("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:h3e("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};One={sentryDsn:"https://7c8c74eb8aa4b065a79765c8eb14f1c3@sentry.ops.gigsmart.com/1011"}});import{readFileSync as Urn}from"node:fs";import{join as Frn}from"node:path";function bS(){try{let e=nn();if(e)return JSON.parse(Urn(Frn(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var sd,l_=v(()=>{"use strict";Ci();sd="10.0.0"});var E3e={};Rr(E3e,{flush:()=>yf,isSentryConfigured:()=>Pne,reportError:()=>ms,reportFeedback:()=>Nne});function S3e(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=>{S3e(r,n),Wt(e,{extra:t})})}function Nne(e,t,n,r){kw&&Za(i=>{S3e(i,t),i.setTag("feedback","true"),pH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Pne(){return kw!==""}async function yf(e=2e3){kw&&await ZA(e)}var kw,ih=v(()=>{"use strict";l3e();Ci();l_();kw=One.sentryDsn;kw&&kne({dsn:kw,release:`haiku-mcp@${sd}`,tracesSampleRate:0})});var _3e={};Rr(_3e,{maybeRebuildSpaForDev:()=>Vrn});import{execFileSync as jrn}from"node:child_process";import{existsSync as Oz,readdirSync as Hrn,statSync as b3e}from"node:fs";import{dirname as qrn,join as xz,resolve as Cne}from"node:path";import{fileURLToPath as Brn}from"node:url";function Grn(e){if(!Oz(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=Hrn(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=xz(r,s),a;try{a=b3e(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function zrn(e){let t;try{t=qrn(Brn(e))}catch{t=process.cwd()}let n=Cne(t,".."),r=Cne(n,".."),i=xz(r,"haiku-ui","src"),s=xz(n,"scripts","bundle-haiku-ui.mjs"),o=xz(n,"src","haiku-ui-html.ts");return!Oz(i)||!Oz(s)?null:{repoRoot:Cne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function Vrn(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=zrn(e);if(!t)return;let n=Grn(t.uiSrcDir),r=Oz(t.bundledHtml)?b3e(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{jrn("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 T3e=v(()=>{"use strict"});var v3e={};Rr(v3e,{askUserInstruction:()=>Jrn,getCapabilities:()=>Mi,getHarness:()=>Krn,isClaudeCode:()=>sh,listHarnesses:()=>Zrn,mapModelTier:()=>Xrn,setHarness:()=>Wrn,skillReference:()=>CP,subagentInstruction:()=>Yrn});function Wrn(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in PP?Iw=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(PP).join(", ")}`),Iw="claude-code"),console.error(`[haiku] Harness: ${PP[Iw].displayName}`)}function Krn(){return Iw}function Mi(){return PP[Iw]}function sh(){return Iw==="claude-code"}function Zrn(){return Object.keys(PP)}function Yrn(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 CP(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function Jrn(){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 Xrn(e){return Mi().modelTierMap[e]||e}var PP,Iw,Sf=v(()=>{"use strict";PP={"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,Mne,Qe,oh,MP=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})})(Mne||(Mne={}));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,Qrn,yu,Nz=v(()=>{MP();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"]),Qrn=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),yu=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()}};yu.create=e=>new yu(e)});var $rn,Um,Dne=v(()=>{Nz();MP();$rn=(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=$rn});function ein(e){A3e=e}function xw(){return A3e}var A3e,Pz=v(()=>{Dne();A3e=Um});function We(e,t){let n=xw(),r=DP({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 DP,tin,pa,Ct,d_,ec,Cz,Mz,_S,Ow,Lne=v(()=>{Pz();Dne();DP=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}},tin=[];pa=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 Ct;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 Ct;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}}},Ct=Object.freeze({status:"aborted"}),d_=e=>({status:"dirty",value:e}),ec=e=>({status:"valid",value:e}),Cz=e=>e.status==="aborted",Mz=e=>e.status==="dirty",_S=e=>e.status==="valid",Ow=e=>typeof Promise<"u"&&e instanceof Promise});var R3e=v(()=>{});var ut,w3e=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 O3e(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 Sin(e){return new RegExp(`^${O3e(e)}$`)}function N3e(e){let t=`${x3e}T${O3e(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 Ein(e,t){return!!((t==="v4"||!t)&&din.test(e)||(t==="v6"||!t)&&pin.test(e))}function bin(e,t){if(!ain.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 _in(e,t){return!!((t==="v4"||!t)&&fin.test(e)||(t==="v6"||!t)&&hin.test(e))}function Tin(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 Nw(e){if(e instanceof Su){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=od.create(Nw(r))}return new Su({...e._def,shape:()=>t})}else return e instanceof Hm?new Hm({...e._def,type:Nw(e.element)}):e instanceof od?od.create(Nw(e.unwrap())):e instanceof ch?ch.create(Nw(e.unwrap())):e instanceof ah?ah.create(e.items.map(t=>Nw(t))):e}function Fne(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=Fne(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=I3e(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=I3e(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):vS.create()}var ad,k3e,mn,nin,rin,iin,sin,oin,ain,cin,uin,lin,Une,din,fin,pin,hin,min,gin,x3e,yin,TS,f_,p_,h_,m_,Pw,g_,y_,vS,jm,Ef,Cw,Hm,Su,S_,Fm,Dz,E_,ah,Lz,Mw,Dw,Uz,b_,__,T_,v_,AS,cd,od,ch,A_,R_,Lw,vin,LP,UP,w_,Ain,Bt,Rin,M3e,D3e,win,kin,L3e,Iin,xin,Oin,Nin,Pin,Cin,Min,Din,Lin,Uin,Fin,jin,Hin,qin,Bin,Gin,zin,Vin,Win,Kin,Zin,Yin,Jin,Xin,Qin,$in,esn,tsn,nsn,rsn,isn,ssn,osn,asn,U3e=v(()=>{Nz();Pz();w3e();Lne();MP();ad=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}},k3e=(e,t)=>{if(_S(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 yu(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 pa,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 k3e(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 _S(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=>_S(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 k3e(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 cd({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 od.create(this,this._def)}nullable(){return ch.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Hm.create(this)}promise(){return AS.create(this,this._def)}or(t){return S_.create([this,t],this._def)}and(t){return E_.create(this,t,this._def)}transform(t){return new cd({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new A_({...un(this._def),innerType:this,defaultValue:n,typeName:Bt.ZodDefault})}brand(){return new LP({typeName:Bt.ZodBranded,type:this,...un(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new R_({...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 UP.create(this,t)}readonly(){return w_.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},nin=/^c[^\s-]{8,}$/i,rin=/^[0-9a-z]+$/,iin=/^[0-9A-HJKMNP-TV-Z]{26}$/i,sin=/^[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,oin=/^[a-z0-9_-]{21}$/i,ain=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,cin=/^[-+]?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)?)??$/,uin=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,lin="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",din=/^(?:(?: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])$/,fin=/^(?:(?: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])$/,pin=/^(([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]))$/,hin=/^(([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])$/,min=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,gin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,x3e="((\\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])))",yin=new RegExp(`^${x3e}$`);TS=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}),Ct}let r=new pa,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 TS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});f_=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}),Ct}let r,i=new pa;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"?Tin(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 f_({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});p_=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 pa;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}),Ct}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 p_({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});h_=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}),Ct}return ec(t.data)}};h_.create=e=>new h_({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});m_=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}),Ct}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_date}),Ct}let r=new pa,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 m_({checks:[],coerce:e?.coerce||!1,typeName:Bt.ZodDate,...un(e)});Pw=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}),Ct}return ec(t.data)}};Pw.create=e=>new Pw({typeName:Bt.ZodSymbol,...un(e)});g_=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}),Ct}return ec(t.data)}};g_.create=e=>new g_({typeName:Bt.ZodUndefined,...un(e)});y_=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}),Ct}return ec(t.data)}};y_.create=e=>new y_({typeName:Bt.ZodNull,...un(e)});vS=class extends mn{constructor(){super(...arguments),this._any=!0}_parse(t){return ec(t.data)}};vS.create=e=>new vS({typeName:Bt.ZodAny,...un(e)});jm=class extends mn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ec(t.data)}};jm.create=e=>new jm({typeName:Bt.ZodUnknown,...un(e)});Ef=class extends mn{_parse(t){let n=this._getOrReturnCtx(t);return We(n,{code:Ie.invalid_type,expected:Qe.never,received:n.parsedType}),Ct}};Ef.create=e=>new Ef({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}),Ct}return ec(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}),Ct;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 ad(n,o,n.path,a)))).then(o=>pa.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new ad(n,o,n.path,a)));return pa.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)});Su=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}),Ct}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ef&&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 ad(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Ef){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 ad(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=>pa.mergeObjectSync(r,u)):pa.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 Nw(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 od;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return P3e(Cn.objectKeys(this.shape))}};Su.create=(e,t)=>new Su({shape:()=>e,unknownKeys:"strip",catchall:Ef.create(),typeName:Bt.ZodObject,...un(t)});Su.strictCreate=(e,t)=>new Su({shape:()=>e,unknownKeys:"strict",catchall:Ef.create(),typeName:Bt.ZodObject,...un(t)});Su.lazycreate=(e,t)=>new Su({shape:e,unknownKeys:"strip",catchall:Ef.create(),typeName:Bt.ZodObject,...un(t)});S_=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 yu(a.ctx.common.issues));return We(n,{code:Ie.invalid_union,unionErrors:o}),Ct}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 yu(c));return We(n,{code:Ie.invalid_union,unionErrors:a}),Ct}}get options(){return this._def.options}};S_.create=(e,t)=>new S_({options:e,typeName:Bt.ZodUnion,...un(t)});Fm=e=>e instanceof b_?Fm(e.schema):e instanceof cd?Fm(e.innerType()):e instanceof __?[e.value]:e instanceof T_?e.options:e instanceof v_?Cn.objectValues(e.enum):e instanceof A_?Fm(e._def.innerType):e instanceof g_?[void 0]:e instanceof y_?[null]:e instanceof od?[void 0,...Fm(e.unwrap())]:e instanceof ch?[null,...Fm(e.unwrap())]:e instanceof LP||e instanceof w_?Fm(e.unwrap()):e instanceof R_?Fm(e._def.innerType):[],Dz=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}),Ct;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]}),Ct)}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)})}};E_=class extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(Cz(s)||Cz(o))return Ct;let a=Fne(s.value,o.value);return a.valid?((Mz(s)||Mz(o))&&n.dirty(),{status:n.value,value:a.data}):(We(r,{code:Ie.invalid_intersection_types}),Ct)};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}))}};E_.create=(e,t,n)=>new E_({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}),Ct;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 ad(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>pa.mergeArray(n,o)):pa.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)})};Lz=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}),Ct;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new ad(r,a,r.path,a)),value:o._parse(new ad(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?pa.mergeObjectAsync(n,i):pa.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:TS.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}),Ct;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new ad(r,a,r.path,[u,"key"])),value:s._parse(new ad(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 Ct;(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 Ct;(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}),Ct;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 Ct;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 ad(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)});Uz=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}),Ct;function r(a,c){return DP({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 DP({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 AS){let a=this;return ec(async function(...c){let u=new yu([]),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 ec(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new yu([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new yu([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)})}},b_=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})}};b_.create=(e,t)=>new b_({getter:e,typeName:Bt.ZodLazy,...un(t)});__=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}),Ct}return{status:"valid",value:t.data}}get value(){return this._def.value}};__.create=(e,t)=>new __({value:e,typeName:Bt.ZodLiteral,...un(t)});T_=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}),Ct}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}),Ct}return ec(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})}};T_.create=P3e;v_=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}),Ct}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}),Ct}return ec(t.data)}get enum(){return this._def.values}};v_.create=(e,t)=>new v_({values:e,typeName:Bt.ZodNativeEnum,...un(t)});AS=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}),Ct;let r=n.parsedType===Qe.promise?n.data:Promise.resolve(n.data);return ec(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};AS.create=(e,t)=>new AS({type:e,typeName:Bt.ZodPromise,...un(t)});cd=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 Ct;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Ct:c.status==="dirty"?d_(c.value):n.value==="dirty"?d_(c.value):c});{if(n.value==="aborted")return Ct;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?Ct:a.status==="dirty"?d_(a.value):n.value==="dirty"?d_(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"?Ct:(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"?Ct:(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(!_S(o))return Ct;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=>_S(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Ct);Cn.assertNever(i)}};cd.create=(e,t,n)=>new cd({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});cd.createWithPreprocess=(e,t,n)=>new cd({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});od=class extends mn{_parse(t){return this._getType(t)===Qe.undefined?ec(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};od.create=(e,t)=>new od({innerType:e,typeName:Bt.ZodOptional,...un(t)});ch=class extends mn{_parse(t){return this._getType(t)===Qe.null?ec(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ch.create=(e,t)=>new ch({innerType:e,typeName:Bt.ZodNullable,...un(t)});A_=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}};A_.create=(e,t)=>new A_({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});R_=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 yu(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new yu(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};R_.create=(e,t)=>new R_({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}),Ct}return{status:"valid",value:t.data}}};Lw.create=e=>new Lw({typeName:Bt.ZodNaN,...un(e)});vin=Symbol("zod_brand"),LP=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}},UP=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"?Ct:s.status==="dirty"?(n.dirty(),d_(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"?Ct: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})}},w_=class extends mn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(_S(i)&&(i.value=Object.freeze(i.value)),i);return Ow(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};w_.create=(e,t)=>new w_({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Ain={object:Su.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={}));Rin=(e,t={message:`Input not instance of ${e.name}`})=>C3e(n=>n instanceof e,t),M3e=TS.create,D3e=f_.create,win=Lw.create,kin=p_.create,L3e=h_.create,Iin=m_.create,xin=Pw.create,Oin=g_.create,Nin=y_.create,Pin=vS.create,Cin=jm.create,Min=Ef.create,Din=Cw.create,Lin=Hm.create,Uin=Su.create,Fin=Su.strictCreate,jin=S_.create,Hin=Dz.create,qin=E_.create,Bin=ah.create,Gin=Lz.create,zin=Mw.create,Vin=Dw.create,Win=Uz.create,Kin=b_.create,Zin=__.create,Yin=T_.create,Jin=v_.create,Xin=AS.create,Qin=cd.create,$in=od.create,esn=ch.create,tsn=cd.createWithPreprocess,nsn=UP.create,rsn=()=>M3e().optional(),isn=()=>D3e().optional(),ssn=()=>L3e().optional(),osn={string:(e=>TS.create({...e,coerce:!0})),number:(e=>f_.create({...e,coerce:!0})),boolean:(e=>h_.create({...e,coerce:!0})),bigint:(e=>p_.create({...e,coerce:!0})),date:(e=>m_.create({...e,coerce:!0}))},asn=Ct});var O={};Rr(O,{BRAND:()=>vin,DIRTY:()=>d_,EMPTY_PATH:()=>tin,INVALID:()=>Ct,NEVER:()=>asn,OK:()=>ec,ParseStatus:()=>pa,Schema:()=>mn,ZodAny:()=>vS,ZodArray:()=>Hm,ZodBigInt:()=>p_,ZodBoolean:()=>h_,ZodBranded:()=>LP,ZodCatch:()=>R_,ZodDate:()=>m_,ZodDefault:()=>A_,ZodDiscriminatedUnion:()=>Dz,ZodEffects:()=>cd,ZodEnum:()=>T_,ZodError:()=>yu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>Uz,ZodIntersection:()=>E_,ZodIssueCode:()=>Ie,ZodLazy:()=>b_,ZodLiteral:()=>__,ZodMap:()=>Mw,ZodNaN:()=>Lw,ZodNativeEnum:()=>v_,ZodNever:()=>Ef,ZodNull:()=>y_,ZodNullable:()=>ch,ZodNumber:()=>f_,ZodObject:()=>Su,ZodOptional:()=>od,ZodParsedType:()=>Qe,ZodPipeline:()=>UP,ZodPromise:()=>AS,ZodReadonly:()=>w_,ZodRecord:()=>Lz,ZodSchema:()=>mn,ZodSet:()=>Dw,ZodString:()=>TS,ZodSymbol:()=>Pw,ZodTransformer:()=>cd,ZodTuple:()=>ah,ZodType:()=>mn,ZodUndefined:()=>g_,ZodUnion:()=>S_,ZodUnknown:()=>jm,ZodVoid:()=>Cw,addIssueToContext:()=>We,any:()=>Pin,array:()=>Lin,bigint:()=>kin,boolean:()=>L3e,coerce:()=>osn,custom:()=>C3e,date:()=>Iin,datetimeRegex:()=>N3e,defaultErrorMap:()=>Um,discriminatedUnion:()=>Hin,effect:()=>Qin,enum:()=>Yin,function:()=>Win,getErrorMap:()=>xw,getParsedType:()=>oh,instanceof:()=>Rin,intersection:()=>qin,isAborted:()=>Cz,isAsync:()=>Ow,isDirty:()=>Mz,isValid:()=>_S,late:()=>Ain,lazy:()=>Kin,literal:()=>Zin,makeIssue:()=>DP,map:()=>zin,nan:()=>win,nativeEnum:()=>Jin,never:()=>Min,null:()=>Nin,nullable:()=>esn,number:()=>D3e,object:()=>Uin,objectUtil:()=>Mne,oboolean:()=>ssn,onumber:()=>isn,optional:()=>$in,ostring:()=>rsn,pipeline:()=>nsn,preprocess:()=>tsn,promise:()=>Xin,quotelessJson:()=>Qrn,record:()=>Gin,set:()=>Vin,setErrorMap:()=>ein,strictObject:()=>Fin,string:()=>M3e,symbol:()=>xin,transformer:()=>Qin,tuple:()=>Bin,undefined:()=>Oin,union:()=>jin,unknown:()=>Cin,util:()=>Cn,void:()=>Din});var jne=v(()=>{Pz();Lne();R3e();MP();U3e();Nz()});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 ud(e){return e&&Object.assign(Fz,e),Fz}var Ujr,qm,Fz,Uw=v(()=>{Ujr=Object.freeze({status:"aborted"});qm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Fz={}});var or={};Rr(or,{BIGINT_FORMAT_RANGES:()=>j3e,Class:()=>qne,NUMBER_FORMAT_RANGES:()=>Yne,aborted:()=>I_,allowsEval:()=>Wne,assert:()=>fsn,assertEqual:()=>csn,assertIs:()=>lsn,assertNever:()=>dsn,assertNotEqual:()=>usn,assignProp:()=>Vne,cached:()=>jP,captureStackTrace:()=>Hz,cleanEnum:()=>Rsn,cleanRegex:()=>qP,clone:()=>uh,createTransparentProxy:()=>Ssn,defineLazy:()=>ni,esc:()=>k_,escapeRegex:()=>RS,extend:()=>_sn,finalizeIssue:()=>bf,floatSafeRemainder:()=>zne,getElementAtPath:()=>psn,getEnumValues:()=>Bne,getLengthableOrigin:()=>BP,getParsedType:()=>ysn,getSizableOrigin:()=>H3e,isObject:()=>Fw,isPlainObject:()=>jw,issue:()=>Jne,joinValues:()=>jz,jsonStringifyReplacer:()=>Gne,merge:()=>Tsn,normalizeParams:()=>Mt,nullish:()=>HP,numKeys:()=>gsn,omit:()=>bsn,optionalKeys:()=>Zne,partial:()=>vsn,pick:()=>Esn,prefixIssues:()=>lh,primitiveTypes:()=>F3e,promiseAllObject:()=>hsn,propertyKeyTypes:()=>Kne,randomString:()=>msn,required:()=>Asn,stringifyPrimitive:()=>qz,unwrapMessage:()=>FP});function csn(e){return e}function usn(e){return e}function lsn(e){}function dsn(e){throw new Error}function fsn(e){}function Bne(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 jz(e,t="|"){return e.map(n=>qz(n)).join(t)}function Gne(e,t){return typeof t=="bigint"?t.toString():t}function jP(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function HP(e){return e==null}function qP(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function zne(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 Vne(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function psn(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function hsn(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 Ssn(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 qz(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Zne(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Esn(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 bsn(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 _sn(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 Vne(this,"shape",r),r},checks:[]};return uh(e,n)}function Tsn(e,t){return uh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Vne(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function vsn(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 Asn(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 I_(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function FP(e){return typeof e=="string"?e:e?.message}function bf(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=FP(e.inst?._zod.def?.error?.(e))??FP(t?.error?.(e))??FP(n.customError?.(e))??FP(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function H3e(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function BP(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Jne(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Rsn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var Hz,Wne,ysn,Kne,F3e,Yne,j3e,qne,Bm=v(()=>{Hz=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};Wne=jP(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});ysn=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}`)}},Kne=new Set(["string","number","symbol"]),F3e=new Set(["string","number","bigint","boolean","symbol","undefined"]);Yne={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]},j3e={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};qne=class{constructor(...t){}}});function B3e(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 G3e(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();q3e=(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,Gne,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Bz=me("$ZodError",q3e),Xne=me("$ZodError",q3e,{Parent:Error})});var z3e,V3e,$ne,GP,ere,Gz,tre=v(()=>{Uw();Qne();Bm();z3e=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,ud())));throw Hz(a,i?.callee),a}return o.value},V3e=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,ud())));throw Hz(a,i?.callee),a}return o.value},$ne=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??Bz)(s.issues.map(o=>bf(o,i,ud())))}:{success:!0,data:s.value}},GP=$ne(Xne),ere=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,ud())))}:{success:!0,data:s.value}},Gz=ere(Xne)});function t4e(){return new RegExp(ksn,"u")}function d4e(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 f4e(e){return new RegExp(`^${d4e(e)}$`)}function p4e(e){let t=d4e({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(`^${u4e}T(?:${r})$`)}var W3e,K3e,Z3e,Y3e,J3e,X3e,Q3e,$3e,nre,e4e,ksn,n4e,r4e,i4e,s4e,o4e,rre,a4e,c4e,u4e,l4e,h4e,m4e,g4e,y4e,S4e,E4e,b4e,zz=v(()=>{W3e=/^[cC][^\s-]{8,}$/,K3e=/^[0-9a-z]+$/,Z3e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Y3e=/^[0-9a-vA-V]{20}$/,J3e=/^[A-Za-z0-9]{27}$/,X3e=/^[a-zA-Z0-9_-]{21}$/,Q3e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,$3e=/^([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})$/,nre=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)$/,e4e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,ksn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";n4e=/^(?:(?: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])$/,r4e=/^(([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})$/,i4e=/^((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])$/,s4e=/^(([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])$/,o4e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,rre=/^[A-Za-z0-9_-]*$/,a4e=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,c4e=/^\+(?:[0-9]){6,14}[0-9]$/,u4e="(?:(?:\\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])))",l4e=new RegExp(`^${u4e}$`);h4e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},m4e=/^\d+$/,g4e=/^-?\d+(?:\.\d+)?/i,y4e=/true|false/i,S4e=/null/i,E4e=/^[^A-Z]*$/,b4e=/^[^a-z]*$/});var tc,_4e,sre,ore,T4e,v4e,A4e,R4e,w4e,zP,k4e,I4e,x4e,O4e,N4e,P4e,C4e,Vz=v(()=>{Uw();zz();Bm();tc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),_4e={number:"number",bigint:"bigint",object:"date"},sre=me("$ZodCheckLessThan",(e,t)=>{tc.init(e,t);let n=_4e[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{tc.init(e,t);let n=_4e[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})}}),T4e=me("$ZodCheckMultipleOf",(e,t)=>{tc.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):zne(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})}}),v4e=me("$ZodCheckNumberFormat",(e,t)=>{tc.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=Yne[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=m4e)}),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})}}),A4e=me("$ZodCheckMaxLength",(e,t)=>{var n;tc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!HP(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=BP(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),R4e=me("$ZodCheckMinLength",(e,t)=>{var n;tc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!HP(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=BP(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),w4e=me("$ZodCheckLengthEquals",(e,t)=>{var n;tc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!HP(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=BP(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})}}),zP=me("$ZodCheckStringFormat",(e,t)=>{var n,r;tc.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=()=>{})}),k4e=me("$ZodCheckRegex",(e,t)=>{zP.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})}}),I4e=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=E4e),zP.init(e,t)}),x4e=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=b4e),zP.init(e,t)}),O4e=me("$ZodCheckIncludes",(e,t)=>{tc.init(e,t);let n=RS(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})}}),N4e=me("$ZodCheckStartsWith",(e,t)=>{tc.init(e,t);let n=new RegExp(`^${RS(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})}}),P4e=me("$ZodCheckEndsWith",(e,t)=>{tc.init(e,t);let n=new RegExp(`.*${RS(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})}}),C4e=me("$ZodCheckOverwrite",(e,t)=>{tc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var Wz,are=v(()=>{Wz=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 D4e,cre=v(()=>{D4e={major:4,minor:0,patch:0}});function lZe(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Isn(e){if(!rre.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return lZe(n)}function xsn(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 L4e(e,t,n){e.issues.length&&t.issues.push(...lh(n,e.issues)),t.value[n]=e.value}function Kz(e,t,n){e.issues.length&&t.issues.push(...lh(n,e.issues)),t.value[n]=e.value}function U4e(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 F4e(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,ud())))}),t}function ure(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=ure(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{Vz();Uw();are();tre();zz();Bm();cre();Bm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=D4e;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=I_(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=I_(s,d)))});else{if(s.issues.length===d)continue;c||(c=I_(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=GP(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Gz(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),Zz=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??h4e(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)=>{zP.init(e,t),Zz.init(e,t)}),V4e=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=$3e),hi.init(e,t)}),W4e=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=nre(r))}else t.pattern??(t.pattern=nre());hi.init(e,t)}),K4e=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=e4e),hi.init(e,t)}),Z4e=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:a4e.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})}}}),Y4e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=t4e()),hi.init(e,t)}),J4e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=X3e),hi.init(e,t)}),X4e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=W3e),hi.init(e,t)}),Q4e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=K3e),hi.init(e,t)}),$4e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Z3e),hi.init(e,t)}),eZe=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Y3e),hi.init(e,t)}),tZe=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=J3e),hi.init(e,t)}),nZe=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=p4e(t)),hi.init(e,t)}),rZe=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=l4e),hi.init(e,t)}),iZe=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=f4e(t)),hi.init(e,t)}),sZe=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Q3e),hi.init(e,t)}),oZe=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=n4e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),aZe=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=r4e),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})}}}),cZe=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=i4e),hi.init(e,t)}),uZe=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=s4e),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})}}});dZe=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=o4e),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{lZe(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});fZe=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=rre),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Isn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),pZe=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=c4e),hi.init(e,t)});hZe=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{xsn(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),lre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??g4e,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}}),mZe=me("$ZodNumber",(e,t)=>{v4e.init(e,t),lre.init(e,t)}),gZe=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=y4e,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}}),yZe=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=S4e,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}}),SZe=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),EZe=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)});bZe=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;oL4e(u,n,o))):L4e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});_Ze=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=jP(()=>{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=Zne(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 Wz(["shape","payload","ctx"]),p=n.value,h=E=>{let S=k_(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 b=k_(E);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[${b}] === undefined) { - if (${b} in input) { - newResult[${b}] = undefined; + if (input[${E}] === undefined) { + if (${E} in input) { + newResult[${E}] = undefined; } } else { payload.issues = payload.issues.concat( ${S}.issues.map((iss) => ({ ...iss, - path: iss.path ? [${b}, ...iss.path] : [${b}], + path: iss.path ? [${E}, ...iss.path] : [${E}], })) ); } } else if (${S}.value === undefined) { - if (${b} in input) newResult[${b}] = undefined; + if (${E} in input) newResult[${E}] = undefined; } else { - newResult[${b}] = ${S}.value; + newResult[${E}] = ${S}.value; } - `)}else{let S=m[E];f.write(`const ${S} = ${h(E)};`),f.write(` + `)}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 ? [${k_(E)}, ...iss.path] : [${k_(E)}] - })));`),f.write(`newResult[${k_(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=Fw,o=!Fz.jitless,c=o&&Wne.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 b of l.keys){let _=S[b],T=_._zod.run({value:p[b],issues:[]},f),A=_._zod.optin==="optional"&&_._zod.optout==="optional";T instanceof Promise?h.push(T.then(R=>A?U4e(R,d,b,p):Kz(R,d,b))):A?U4e(T,d,b,p):Kz(T,d,b)}}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 b=g.run({value:p[S],issues:[]},f);b instanceof Promise?h.push(b.then(_=>Kz(_,d,S))):Kz(b,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}});dre=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=>qP(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=>F4e(o,n,e,r)):F4e(s,n,e,r)}}),TZe=me("$ZodDiscriminatedUnion",(e,t)=>{dre.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=jP(()=>{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)}}),vZe=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])=>j4e(n,c,u)):j4e(n,s,o)}});AZe=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,ud())),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}}),RZe=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=Bne(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>Kne.has(typeof r)).map(r=>typeof r=="string"?RS(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}}),wZe=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"?RS(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}}),kZe=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}}),IZe=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(`^(${qP(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)}),xZe=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(`^(${qP(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)}),OZe=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=>H4e(s,t)):H4e(i,t)}});NZe=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))}),PZe=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=>q4e(s,e)):q4e(i,e)}});CZe=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,ud()))},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,ud()))},input:n.value}),n.issues=[]),n)}}),MZe=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=>B4e(s,t,r)):B4e(i,t,r)}});DZe=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(G4e):G4e(i)}});LZe=me("$ZodCustom",(e,t)=>{tc.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=>z4e(s,n,r,e));z4e(i,n,r,e)}})});function FZe(){return{localeError:Nsn()}}var Osn,Nsn,jZe=v(()=>{Bm();Osn=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},Nsn=()=>{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 ${Osn(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${qz(r.values[0])}`:`Invalid option: expected one of ${jz(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":""}: ${jz(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 Yz=v(()=>{});function Psn(){return new pre}var pre,VP,HZe=v(()=>{pre=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)}};VP=Psn()});function qZe(e,t){return new e({type:"string",...Mt(t)})}function BZe(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Mt(t)})}function hre(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Mt(t)})}function GZe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Mt(t)})}function zZe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Mt(t)})}function VZe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Mt(t)})}function WZe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Mt(t)})}function KZe(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Mt(t)})}function ZZe(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Mt(t)})}function YZe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Mt(t)})}function JZe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Mt(t)})}function XZe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Mt(t)})}function QZe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Mt(t)})}function $Ze(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Mt(t)})}function e9e(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Mt(t)})}function t9e(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Mt(t)})}function n9e(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Mt(t)})}function r9e(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Mt(t)})}function i9e(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Mt(t)})}function s9e(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Mt(t)})}function o9e(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Mt(t)})}function a9e(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Mt(t)})}function c9e(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Mt(t)})}function u9e(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Mt(t)})}function l9e(e,t){return new e({type:"string",format:"date",check:"string_format",...Mt(t)})}function d9e(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Mt(t)})}function f9e(e,t){return new e({type:"string",format:"duration",check:"string_format",...Mt(t)})}function p9e(e,t){return new e({type:"number",checks:[],...Mt(t)})}function h9e(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Mt(t)})}function m9e(e,t){return new e({type:"boolean",...Mt(t)})}function g9e(e,t){return new e({type:"null",...Mt(t)})}function y9e(e){return new e({type:"unknown"})}function S9e(e,t){return new e({type:"never",...Mt(t)})}function Jz(e,t){return new sre({check:"less_than",...Mt(t),value:e,inclusive:!1})}function WP(e,t){return new sre({check:"less_than",...Mt(t),value:e,inclusive:!0})}function Xz(e,t){return new ore({check:"greater_than",...Mt(t),value:e,inclusive:!1})}function KP(e,t){return new ore({check:"greater_than",...Mt(t),value:e,inclusive:!0})}function Qz(e,t){return new T4e({check:"multiple_of",...Mt(t),value:e})}function $z(e,t){return new A4e({check:"max_length",...Mt(t),maximum:e})}function Hw(e,t){return new R4e({check:"min_length",...Mt(t),minimum:e})}function eV(e,t){return new w4e({check:"length_equals",...Mt(t),length:e})}function mre(e,t){return new k4e({check:"string_format",format:"regex",...Mt(t),pattern:e})}function gre(e){return new I4e({check:"string_format",format:"lowercase",...Mt(e)})}function yre(e){return new x4e({check:"string_format",format:"uppercase",...Mt(e)})}function Sre(e,t){return new O4e({check:"string_format",format:"includes",...Mt(t),includes:e})}function Ere(e,t){return new N4e({check:"string_format",format:"starts_with",...Mt(t),prefix:e})}function bre(e,t){return new P4e({check:"string_format",format:"ends_with",...Mt(t),suffix:e})}function x_(e){return new C4e({check:"overwrite",tx:e})}function _re(e){return x_(t=>t.normalize(e))}function Tre(){return x_(e=>e.trim())}function vre(){return x_(e=>e.toLowerCase())}function Are(){return x_(e=>e.toUpperCase())}function E9e(e,t,n){return new e({type:"array",element:t,...Mt(n)})}function b9e(e,t,n){let r=Mt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function _9e(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Mt(n)})}var T9e=v(()=>{Vz();Bm()});var v9e=v(()=>{});var A9e=v(()=>{});var R9e=v(()=>{});var ld=v(()=>{Uw();tre();Qne();UZe();Vz();cre();Bm();zz();Yz();HZe();are();v9e();T9e();A9e();R9e()});var w9e=v(()=>{ld()});var k9e=v(()=>{});var I9e=v(()=>{});var x9e=v(()=>{});var O9e=v(()=>{});var N9e=v(()=>{ld();w9e();k9e();I9e();Yz();x9e();O9e()});var P9e=v(()=>{N9e()});var C9e=v(()=>{P9e()});function Bw(e){return!!e._zod}function wS(e,t){return Bw(e)?GP(e,t):e.safeParse(t)}function tV(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 M9e(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 nV=v(()=>{C9e()});var Rre=v(()=>{ld()});var ZP={};Rr(ZP,{ZodISODate:()=>L9e,ZodISODateTime:()=>D9e,ZodISODuration:()=>F9e,ZodISOTime:()=>U9e,date:()=>kre,datetime:()=>wre,duration:()=>xre,time:()=>Ire});function wre(e){return u9e(D9e,e)}function kre(e){return l9e(L9e,e)}function Ire(e){return d9e(U9e,e)}function xre(e){return f9e(F9e,e)}var D9e,L9e,U9e,F9e,Ore=v(()=>{ld();Nre();D9e=me("ZodISODateTime",(e,t)=>{nZe.init(e,t),Di.init(e,t)});L9e=me("ZodISODate",(e,t)=>{rZe.init(e,t),Di.init(e,t)});U9e=me("ZodISOTime",(e,t)=>{iZe.init(e,t),Di.init(e,t)});F9e=me("ZodISODuration",(e,t)=>{sZe.init(e,t),Di.init(e,t)})});var j9e,HHr,YP,Pre=v(()=>{ld();ld();j9e=(e,t)=>{Bz.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>G3e(e,n)},flatten:{value:n=>B3e(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},HHr=me("ZodError",j9e),YP=me("ZodError",j9e,{Parent:Error})});var H9e,q9e,B9e,G9e,Cre=v(()=>{ld();Pre();H9e=z3e(YP),q9e=V3e(YP),B9e=$ne(YP),G9e=ere(YP)});function ce(e){return qZe(Gsn,e)}function Tr(e){return p9e(Z9e,e)}function V9e(e){return h9e(aon,e)}function Vo(e){return m9e(con,e)}function Y9e(e){return g9e(uon,e)}function Li(){return y9e(lon)}function fon(e){return S9e(don,e)}function Vn(e,t){return E9e(pon,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 J9e(n)}function qc(e,t){return new J9e({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Li(),...or.normalizeParams(t)})}function mi(e,t){return new X9e({type:"union",options:e,...or.normalizeParams(t)})}function Lre(e,t,n){return new hon({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function iV(e,t){return new mon({type:"intersection",left:e,right:t})}function ii(e,t,n){return new gon({type:"record",keyType:e,valueType:t,...or.normalizeParams(n)})}function Eu(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Mre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new yon({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function Q9e(e){return new Son({type:"transform",transform:e})}function Ui(e){return new $9e({type:"optional",innerType:e})}function W9e(e){return new Eon({type:"nullable",innerType:e})}function _on(e,t){return new bon({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function von(e,t){return new Ton({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Aon(e,t){return new eYe({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function won(e,t){return new Ron({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Dre(e,t){return new kon({type:"pipe",in:e,out:t})}function xon(e){return new Ion({type:"readonly",innerType:e})}function Oon(e){let t=new tc({check:"custom"});return t._zod.check=e,t}function nYe(e,t){return b9e(tYe,e??(()=>!0),t)}function Non(e,t={}){return _9e(tYe,e,t)}function Pon(e){let t=Oon(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 Ure(e,t){return Dre(Q9e(e),t)}var Ji,K9e,Gsn,Di,zsn,z9e,rV,Vsn,Wsn,Ksn,Zsn,Ysn,Jsn,Xsn,Qsn,$sn,eon,ton,non,ron,ion,son,oon,Z9e,aon,con,uon,lon,don,pon,J9e,X9e,hon,mon,gon,Mre,yon,Son,$9e,Eon,bon,Ton,eYe,Ron,kon,Ion,tYe,Nre=v(()=>{ld();ld();Rre();Ore();Cre();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)=>H9e(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>B9e(e,n,r),e.parseAsync=async(n,r)=>q9e(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>G9e(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Non(n,r)),e.superRefine=n=>e.check(Pon(n)),e.overwrite=n=>e.check(x_(n)),e.optional=()=>Ui(e),e.nullable=()=>W9e(e),e.nullish=()=>Ui(W9e(e)),e.nonoptional=n=>Aon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>iV(e,n),e.transform=n=>Dre(e,Q9e(n)),e.default=n=>_on(e,n),e.prefault=n=>von(e,n),e.catch=n=>won(e,n),e.pipe=n=>Dre(e,n),e.readonly=()=>xon(e),e.describe=n=>{let r=e.clone();return VP.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return VP.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return VP.get(e);let r=e.clone();return VP.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),K9e=me("_ZodString",(e,t)=>{Zz.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(mre(...r)),e.includes=(...r)=>e.check(Sre(...r)),e.startsWith=(...r)=>e.check(Ere(...r)),e.endsWith=(...r)=>e.check(bre(...r)),e.min=(...r)=>e.check(Hw(...r)),e.max=(...r)=>e.check($z(...r)),e.length=(...r)=>e.check(eV(...r)),e.nonempty=(...r)=>e.check(Hw(1,...r)),e.lowercase=r=>e.check(gre(r)),e.uppercase=r=>e.check(yre(r)),e.trim=()=>e.check(Tre()),e.normalize=(...r)=>e.check(_re(...r)),e.toLowerCase=()=>e.check(vre()),e.toUpperCase=()=>e.check(Are())}),Gsn=me("ZodString",(e,t)=>{Zz.init(e,t),K9e.init(e,t),e.email=n=>e.check(BZe(zsn,n)),e.url=n=>e.check(KZe(Vsn,n)),e.jwt=n=>e.check(c9e(oon,n)),e.emoji=n=>e.check(ZZe(Wsn,n)),e.guid=n=>e.check(hre(z9e,n)),e.uuid=n=>e.check(GZe(rV,n)),e.uuidv4=n=>e.check(zZe(rV,n)),e.uuidv6=n=>e.check(VZe(rV,n)),e.uuidv7=n=>e.check(WZe(rV,n)),e.nanoid=n=>e.check(YZe(Ksn,n)),e.guid=n=>e.check(hre(z9e,n)),e.cuid=n=>e.check(JZe(Zsn,n)),e.cuid2=n=>e.check(XZe(Ysn,n)),e.ulid=n=>e.check(QZe(Jsn,n)),e.base64=n=>e.check(s9e(ron,n)),e.base64url=n=>e.check(o9e(ion,n)),e.xid=n=>e.check($Ze(Xsn,n)),e.ksuid=n=>e.check(e9e(Qsn,n)),e.ipv4=n=>e.check(t9e($sn,n)),e.ipv6=n=>e.check(n9e(eon,n)),e.cidrv4=n=>e.check(r9e(ton,n)),e.cidrv6=n=>e.check(i9e(non,n)),e.e164=n=>e.check(a9e(son,n)),e.datetime=n=>e.check(wre(n)),e.date=n=>e.check(kre(n)),e.time=n=>e.check(Ire(n)),e.duration=n=>e.check(xre(n))});Di=me("ZodStringFormat",(e,t)=>{hi.init(e,t),K9e.init(e,t)}),zsn=me("ZodEmail",(e,t)=>{K4e.init(e,t),Di.init(e,t)}),z9e=me("ZodGUID",(e,t)=>{V4e.init(e,t),Di.init(e,t)}),rV=me("ZodUUID",(e,t)=>{W4e.init(e,t),Di.init(e,t)}),Vsn=me("ZodURL",(e,t)=>{Z4e.init(e,t),Di.init(e,t)}),Wsn=me("ZodEmoji",(e,t)=>{Y4e.init(e,t),Di.init(e,t)}),Ksn=me("ZodNanoID",(e,t)=>{J4e.init(e,t),Di.init(e,t)}),Zsn=me("ZodCUID",(e,t)=>{X4e.init(e,t),Di.init(e,t)}),Ysn=me("ZodCUID2",(e,t)=>{Q4e.init(e,t),Di.init(e,t)}),Jsn=me("ZodULID",(e,t)=>{$4e.init(e,t),Di.init(e,t)}),Xsn=me("ZodXID",(e,t)=>{eZe.init(e,t),Di.init(e,t)}),Qsn=me("ZodKSUID",(e,t)=>{tZe.init(e,t),Di.init(e,t)}),$sn=me("ZodIPv4",(e,t)=>{oZe.init(e,t),Di.init(e,t)}),eon=me("ZodIPv6",(e,t)=>{aZe.init(e,t),Di.init(e,t)}),ton=me("ZodCIDRv4",(e,t)=>{cZe.init(e,t),Di.init(e,t)}),non=me("ZodCIDRv6",(e,t)=>{uZe.init(e,t),Di.init(e,t)}),ron=me("ZodBase64",(e,t)=>{dZe.init(e,t),Di.init(e,t)}),ion=me("ZodBase64URL",(e,t)=>{fZe.init(e,t),Di.init(e,t)}),son=me("ZodE164",(e,t)=>{pZe.init(e,t),Di.init(e,t)}),oon=me("ZodJWT",(e,t)=>{hZe.init(e,t),Di.init(e,t)}),Z9e=me("ZodNumber",(e,t)=>{lre.init(e,t),Ji.init(e,t),e.gt=(r,i)=>e.check(Xz(r,i)),e.gte=(r,i)=>e.check(KP(r,i)),e.min=(r,i)=>e.check(KP(r,i)),e.lt=(r,i)=>e.check(Jz(r,i)),e.lte=(r,i)=>e.check(WP(r,i)),e.max=(r,i)=>e.check(WP(r,i)),e.int=r=>e.check(V9e(r)),e.safe=r=>e.check(V9e(r)),e.positive=r=>e.check(Xz(0,r)),e.nonnegative=r=>e.check(KP(0,r)),e.negative=r=>e.check(Jz(0,r)),e.nonpositive=r=>e.check(WP(0,r)),e.multipleOf=(r,i)=>e.check(Qz(r,i)),e.step=(r,i)=>e.check(Qz(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});aon=me("ZodNumberFormat",(e,t)=>{mZe.init(e,t),Z9e.init(e,t)});con=me("ZodBoolean",(e,t)=>{gZe.init(e,t),Ji.init(e,t)});uon=me("ZodNull",(e,t)=>{yZe.init(e,t),Ji.init(e,t)});lon=me("ZodUnknown",(e,t)=>{SZe.init(e,t),Ji.init(e,t)});don=me("ZodNever",(e,t)=>{EZe.init(e,t),Ji.init(e,t)});pon=me("ZodArray",(e,t)=>{bZe.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($z(n,r)),e.length=(n,r)=>e.check(eV(n,r)),e.unwrap=()=>e.element});J9e=me("ZodObject",(e,t)=>{_Ze.init(e,t),Ji.init(e,t),or.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>Eu(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:fon()}),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($9e,e,n[0]),e.required=(...n)=>or.required(eYe,e,n[0])});X9e=me("ZodUnion",(e,t)=>{dre.init(e,t),Ji.init(e,t),e.options=t.options});hon=me("ZodDiscriminatedUnion",(e,t)=>{X9e.init(e,t),TZe.init(e,t)});mon=me("ZodIntersection",(e,t)=>{vZe.init(e,t),Ji.init(e,t)});gon=me("ZodRecord",(e,t)=>{AZe.init(e,t),Ji.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Mre=me("ZodEnum",(e,t)=>{RZe.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 Mre({...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 Mre({...t,checks:[],...or.normalizeParams(i),entries:s})}});yon=me("ZodLiteral",(e,t)=>{wZe.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]}})});Son=me("ZodTransform",(e,t)=>{kZe.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)}});$9e=me("ZodOptional",(e,t)=>{IZe.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Eon=me("ZodNullable",(e,t)=>{xZe.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});bon=me("ZodDefault",(e,t)=>{OZe.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Ton=me("ZodPrefault",(e,t)=>{NZe.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});eYe=me("ZodNonOptional",(e,t)=>{PZe.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Ron=me("ZodCatch",(e,t)=>{CZe.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});kon=me("ZodPipe",(e,t)=>{MZe.init(e,t),Ji.init(e,t),e.in=t.in,e.out=t.out});Ion=me("ZodReadonly",(e,t)=>{DZe.init(e,t),Ji.init(e,t)});tYe=me("ZodCustom",(e,t)=>{LZe.init(e,t),Ji.init(e,t)})});var rYe=v(()=>{});var iYe=v(()=>{});var sYe=v(()=>{ld();Nre();Rre();Pre();Cre();rYe();ld();jZe();Yz();Ore();iYe();ud(FZe())});var oYe=v(()=>{sYe()});var aYe=v(()=>{oYe()});var jre,cYe,kS,oV,bo,uYe,lYe,Dqr,Don,Lon,Hre,ml,JP,dYe,ha,dd,fd,ma,aV,fYe,qre,pYe,hYe,Bre,XP,yn,Gre,mYe,gYe,Lqr,cV,Uon,uV,Fon,QP,Gw,yYe,jon,Hon,qon,Bon,Gon,zon,zre,Von,Won,Vre,lV,Kon,Zon,dV,Yon,$P,eC,Jon,tC,zw,Xon,nC,fV,pV,hV,Uqr,mV,gV,yV,SYe,EYe,bYe,Wre,_Ye,rC,Vw,TYe,Qon,$on,ean,tan,nan,Kre,ran,ian,san,oan,aan,can,uan,lan,dan,fan,pan,han,Zre,man,gan,Yre,Jre,Xre,Qre,yan,San,Ean,$re,ban,_an,Tan,van,Aan,vYe,eie,Ran,SV,Fqr,wan,iC,kan,jqr,sC,Ian,tie,xan,Oan,Nan,Pan,Can,Man,Dan,sV,Lan,Uan,Fan,oC,nie,jan,Han,qan,Ban,Gan,zan,Van,Wan,Kan,Zan,Yan,Jan,Xan,Qan,$an,ecn,tcn,ncn,Ww,rcn,icn,scn,rie,ocn,acn,ccn,iie,ucn,Hqr,qqr,Bqr,Gqr,zqr,Vqr,rn,Fre,O_=v(()=>{aYe();jre="2025-11-25",cYe=[jre,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],kS="io.modelcontextprotocol/related-task",oV="2.0",bo=nYe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),uYe=mi([ce(),Tr().int()]),lYe=ce(),Dqr=qc({ttl:Tr().optional(),pollInterval:Tr().optional()}),Don=$e({ttl:Tr().optional()}),Lon=$e({taskId:ce()}),Hre=qc({progressToken:uYe.optional(),[kS]:Lon.optional()}),ml=$e({_meta:Hre.optional()}),JP=ml.extend({task:Don.optional()}),dYe=e=>JP.safeParse(e).success,ha=$e({method:ce(),params:ml.loose().optional()}),dd=$e({_meta:Hre.optional()}),fd=$e({method:ce(),params:dd.loose().optional()}),ma=qc({_meta:Hre.optional()}),aV=mi([ce(),Tr().int()]),fYe=$e({jsonrpc:ft(oV),id:aV,...ha.shape}).strict(),qre=e=>fYe.safeParse(e).success,pYe=$e({jsonrpc:ft(oV),...fd.shape}).strict(),hYe=e=>pYe.safeParse(e).success,Bre=$e({jsonrpc:ft(oV),id:aV,result:ma}).strict(),XP=e=>Bre.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={}));Gre=$e({jsonrpc:ft(oV),id:aV.optional(),error:$e({code:Tr().int(),message:ce(),data:Li().optional()})}).strict(),mYe=e=>Gre.safeParse(e).success,gYe=mi([fYe,pYe,Bre,Gre]),Lqr=mi([Bre,Gre]),cV=ma.strict(),Uon=dd.extend({requestId:aV.optional(),reason:ce().optional()}),uV=fd.extend({method:ft("notifications/cancelled"),params:Uon}),Fon=$e({src:ce(),mimeType:ce().optional(),sizes:Vn(ce()).optional(),theme:Eu(["light","dark"]).optional()}),QP=$e({icons:Vn(Fon).optional()}),Gw=$e({name:ce(),title:ce().optional()}),yYe=Gw.extend({...Gw.shape,...QP.shape,version:ce(),websiteUrl:ce().optional(),description:ce().optional()}),jon=iV($e({applyDefaults:Vo().optional()}),ii(ce(),Li())),Hon=Ure(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,iV($e({form:jon.optional(),url:bo.optional()}),ii(ce(),Li()).optional())),qon=qc({list:bo.optional(),cancel:bo.optional(),requests:qc({sampling:qc({createMessage:bo.optional()}).optional(),elicitation:qc({create:bo.optional()}).optional()}).optional()}),Bon=qc({list:bo.optional(),cancel:bo.optional(),requests:qc({tools:qc({call:bo.optional()}).optional()}).optional()}),Gon=$e({experimental:ii(ce(),bo).optional(),sampling:$e({context:bo.optional(),tools:bo.optional()}).optional(),elicitation:Hon.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:qon.optional(),extensions:ii(ce(),bo).optional()}),zon=ml.extend({protocolVersion:ce(),capabilities:Gon,clientInfo:yYe}),zre=ha.extend({method:ft("initialize"),params:zon}),Von=$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:Bon.optional(),extensions:ii(ce(),bo).optional()}),Won=ma.extend({protocolVersion:ce(),capabilities:Von,serverInfo:yYe,instructions:ce().optional()}),Vre=fd.extend({method:ft("notifications/initialized"),params:dd.optional()}),lV=ha.extend({method:ft("ping"),params:ml.optional()}),Kon=$e({progress:Tr(),total:Ui(Tr()),message:Ui(ce())}),Zon=$e({...dd.shape,...Kon.shape,progressToken:uYe}),dV=fd.extend({method:ft("notifications/progress"),params:Zon}),Yon=ml.extend({cursor:lYe.optional()}),$P=ha.extend({params:Yon.optional()}),eC=ma.extend({nextCursor:lYe.optional()}),Jon=Eu(["working","input_required","completed","failed","cancelled"]),tC=$e({taskId:ce(),status:Jon,ttl:mi([Tr(),Y9e()]),createdAt:ce(),lastUpdatedAt:ce(),pollInterval:Ui(Tr()),statusMessage:Ui(ce())}),zw=ma.extend({task:tC}),Xon=dd.merge(tC),nC=fd.extend({method:ft("notifications/tasks/status"),params:Xon}),fV=ha.extend({method:ft("tasks/get"),params:ml.extend({taskId:ce()})}),pV=ma.merge(tC),hV=ha.extend({method:ft("tasks/result"),params:ml.extend({taskId:ce()})}),Uqr=ma.loose(),mV=$P.extend({method:ft("tasks/list")}),gV=eC.extend({tasks:Vn(tC)}),yV=ha.extend({method:ft("tasks/cancel"),params:ml.extend({taskId:ce()})}),SYe=ma.merge(tC),EYe=$e({uri:ce(),mimeType:Ui(ce()),_meta:ii(ce(),Li()).optional()}),bYe=EYe.extend({text:ce()}),Wre=ce().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),_Ye=EYe.extend({blob:Wre}),rC=Eu(["user","assistant"]),Vw=$e({audience:Vn(rC).optional(),priority:Tr().min(0).max(1).optional(),lastModified:ZP.datetime({offset:!0}).optional()}),TYe=$e({...Gw.shape,...QP.shape,uri:ce(),description:Ui(ce()),mimeType:Ui(ce()),size:Ui(Tr()),annotations:Vw.optional(),_meta:Ui(qc({}))}),Qon=$e({...Gw.shape,...QP.shape,uriTemplate:ce(),description:Ui(ce()),mimeType:Ui(ce()),annotations:Vw.optional(),_meta:Ui(qc({}))}),$on=$P.extend({method:ft("resources/list")}),ean=eC.extend({resources:Vn(TYe)}),tan=$P.extend({method:ft("resources/templates/list")}),nan=eC.extend({resourceTemplates:Vn(Qon)}),Kre=ml.extend({uri:ce()}),ran=Kre,ian=ha.extend({method:ft("resources/read"),params:ran}),san=ma.extend({contents:Vn(mi([bYe,_Ye]))}),oan=fd.extend({method:ft("notifications/resources/list_changed"),params:dd.optional()}),aan=Kre,can=ha.extend({method:ft("resources/subscribe"),params:aan}),uan=Kre,lan=ha.extend({method:ft("resources/unsubscribe"),params:uan}),dan=dd.extend({uri:ce()}),fan=fd.extend({method:ft("notifications/resources/updated"),params:dan}),pan=$e({name:ce(),description:Ui(ce()),required:Ui(Vo())}),han=$e({...Gw.shape,...QP.shape,description:Ui(ce()),arguments:Ui(Vn(pan)),_meta:Ui(qc({}))}),Zre=$P.extend({method:ft("prompts/list")}),man=eC.extend({prompts:Vn(han)}),gan=ml.extend({name:ce(),arguments:ii(ce(),ce()).optional()}),Yre=ha.extend({method:ft("prompts/get"),params:gan}),Jre=$e({type:ft("text"),text:ce(),annotations:Vw.optional(),_meta:ii(ce(),Li()).optional()}),Xre=$e({type:ft("image"),data:Wre,mimeType:ce(),annotations:Vw.optional(),_meta:ii(ce(),Li()).optional()}),Qre=$e({type:ft("audio"),data:Wre,mimeType:ce(),annotations:Vw.optional(),_meta:ii(ce(),Li()).optional()}),yan=$e({type:ft("tool_use"),name:ce(),id:ce(),input:ii(ce(),Li()),_meta:ii(ce(),Li()).optional()}),San=$e({type:ft("resource"),resource:mi([bYe,_Ye]),annotations:Vw.optional(),_meta:ii(ce(),Li()).optional()}),Ean=TYe.extend({type:ft("resource_link")}),$re=mi([Jre,Xre,Qre,Ean,San]),ban=$e({role:rC,content:$re}),_an=ma.extend({description:ce().optional(),messages:Vn(ban)}),Tan=fd.extend({method:ft("notifications/prompts/list_changed"),params:dd.optional()}),van=$e({title:ce().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Aan=$e({taskSupport:Eu(["required","optional","forbidden"]).optional()}),vYe=$e({...Gw.shape,...QP.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:van.optional(),execution:Aan.optional(),_meta:ii(ce(),Li()).optional()}),eie=$P.extend({method:ft("tools/list")}),Ran=eC.extend({tools:Vn(vYe)}),SV=ma.extend({content:Vn($re).default([]),structuredContent:ii(ce(),Li()).optional(),isError:Vo().optional()}),Fqr=SV.or(ma.extend({toolResult:Li()})),wan=JP.extend({name:ce(),arguments:ii(ce(),Li()).optional()}),iC=ha.extend({method:ft("tools/call"),params:wan}),kan=fd.extend({method:ft("notifications/tools/list_changed"),params:dd.optional()}),jqr=$e({autoRefresh:Vo().default(!0),debounceMs:Tr().int().nonnegative().default(300)}),sC=Eu(["debug","info","notice","warning","error","critical","alert","emergency"]),Ian=ml.extend({level:sC}),tie=ha.extend({method:ft("logging/setLevel"),params:Ian}),xan=dd.extend({level:sC,logger:ce().optional(),data:Li()}),Oan=fd.extend({method:ft("notifications/message"),params:xan}),Nan=$e({name:ce().optional()}),Pan=$e({hints:Vn(Nan).optional(),costPriority:Tr().min(0).max(1).optional(),speedPriority:Tr().min(0).max(1).optional(),intelligencePriority:Tr().min(0).max(1).optional()}),Can=$e({mode:Eu(["auto","required","none"]).optional()}),Man=$e({type:ft("tool_result"),toolUseId:ce().describe("The unique identifier for the corresponding tool call."),content:Vn($re).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(ce(),Li()).optional()}),Dan=Lre("type",[Jre,Xre,Qre]),sV=Lre("type",[Jre,Xre,Qre,yan,Man]),Lan=$e({role:rC,content:mi([sV,Vn(sV)]),_meta:ii(ce(),Li()).optional()}),Uan=JP.extend({messages:Vn(Lan),modelPreferences:Pan.optional(),systemPrompt:ce().optional(),includeContext:Eu(["none","thisServer","allServers"]).optional(),temperature:Tr().optional(),maxTokens:Tr().int(),stopSequences:Vn(ce()).optional(),metadata:bo.optional(),tools:Vn(vYe).optional(),toolChoice:Can.optional()}),Fan=ha.extend({method:ft("sampling/createMessage"),params:Uan}),oC=ma.extend({model:ce(),stopReason:Ui(Eu(["endTurn","stopSequence","maxTokens"]).or(ce())),role:rC,content:Dan}),nie=ma.extend({model:ce(),stopReason:Ui(Eu(["endTurn","stopSequence","maxTokens","toolUse"]).or(ce())),role:rC,content:mi([sV,Vn(sV)])}),jan=$e({type:ft("boolean"),title:ce().optional(),description:ce().optional(),default:Vo().optional()}),Han=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),minLength:Tr().optional(),maxLength:Tr().optional(),format:Eu(["email","uri","date","date-time"]).optional(),default:ce().optional()}),qan=$e({type:Eu(["number","integer"]),title:ce().optional(),description:ce().optional(),minimum:Tr().optional(),maximum:Tr().optional(),default:Tr().optional()}),Ban=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),default:ce().optional()}),Gan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),oneOf:Vn($e({const:ce(),title:ce()})),default:ce().optional()}),zan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),enumNames:Vn(ce()).optional(),default:ce().optional()}),Van=mi([Ban,Gan]),Wan=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:Tr().optional(),maxItems:Tr().optional(),items:$e({type:ft("string"),enum:Vn(ce())}),default:Vn(ce()).optional()}),Kan=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:Tr().optional(),maxItems:Tr().optional(),items:$e({anyOf:Vn($e({const:ce(),title:ce()}))}),default:Vn(ce()).optional()}),Zan=mi([Wan,Kan]),Yan=mi([zan,Van,Zan]),Jan=mi([Yan,jan,Han,qan]),Xan=JP.extend({mode:ft("form").optional(),message:ce(),requestedSchema:$e({type:ft("object"),properties:ii(ce(),Jan),required:Vn(ce()).optional()})}),Qan=JP.extend({mode:ft("url"),message:ce(),elicitationId:ce(),url:ce().url()}),$an=mi([Xan,Qan]),ecn=ha.extend({method:ft("elicitation/create"),params:$an}),tcn=dd.extend({elicitationId:ce()}),ncn=fd.extend({method:ft("notifications/elicitation/complete"),params:tcn}),Ww=ma.extend({action:Eu(["accept","decline","cancel"]),content:Ure(e=>e===null?void 0:e,ii(ce(),mi([ce(),Tr(),Vo(),Vn(ce())])).optional())}),rcn=$e({type:ft("ref/resource"),uri:ce()}),icn=$e({type:ft("ref/prompt"),name:ce()}),scn=ml.extend({ref:mi([icn,rcn]),argument:$e({name:ce(),value:ce()}),context:$e({arguments:ii(ce(),ce()).optional()}).optional()}),rie=ha.extend({method:ft("completion/complete"),params:scn}),ocn=ma.extend({completion:qc({values:Vn(ce()).max(100),total:Ui(Tr().int()),hasMore:Ui(Vo())})}),acn=$e({uri:ce().startsWith("file://"),name:ce().optional(),_meta:ii(ce(),Li()).optional()}),ccn=ha.extend({method:ft("roots/list"),params:ml.optional()}),iie=ma.extend({roots:Vn(acn)}),ucn=fd.extend({method:ft("notifications/roots/list_changed"),params:dd.optional()}),Hqr=mi([lV,zre,rie,tie,Yre,Zre,$on,tan,ian,can,lan,iC,eie,fV,hV,mV,yV]),qqr=mi([uV,dV,Vre,ucn,nC]),Bqr=mi([cV,oC,nie,Ww,iie,pV,gV,zw]),Gqr=mi([lV,Fan,ecn,ccn,fV,hV,mV,yV]),zqr=mi([uV,dV,Oan,fan,oan,kan,Tan,nC,ncn]),Vqr=mi([cV,Won,ocn,_an,man,ean,nan,san,SV,Ran,pV,gV,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 Fre(i.elicitations,n)}return new e(t,n,r)}},Fre=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 IS(e){return e==="completed"||e==="failed"||e==="cancelled"}var AYe=v(()=>{});var EV=v(()=>{});var sie=v(()=>{EV()});var xS=v(()=>{});var bV=v(()=>{});var pd=v(()=>{bV()});var oie=v(()=>{xS();Qs()});var aie=v(()=>{xS()});var cie=v(()=>{});var _V=v(()=>{Qs()});var uie=v(()=>{Qs()});var lie=v(()=>{xS()});var die=v(()=>{Qs()});var fie=v(()=>{Qs();pd()});var pie=v(()=>{});var hie=v(()=>{Qs()});var mie=v(()=>{});var ABr,TV=v(()=>{xS();ABr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var vV=v(()=>{Qs();TV();_V();pd()});var gie=v(()=>{Qs();vV();pd()});var yie=v(()=>{});var Sie=v(()=>{pd()});var Eie=v(()=>{});var AV=v(()=>{Qs()});var bie=v(()=>{Qs();AV()});var _ie=v(()=>{xS()});var Tie=v(()=>{Qs()});var vie=v(()=>{Qs();pd()});var Aie=v(()=>{Qs()});var Rie=v(()=>{Qs()});var wie=v(()=>{xS();Qs()});var kie=v(()=>{Qs()});var Iie=v(()=>{pd()});var xie=v(()=>{pd()});var Oie=v(()=>{Qs()});var Nie=v(()=>{pd();oie();aie();cie();_V();uie();lie();die();fie();pie();hie();mie();gie();yie();Sie();Eie();bie();_ie();Tie();vie();Aie();Rie();vV();wie();TV();kie();Iie();AV();xie();Oie()});var Qs=v(()=>{EV();Nie();bV();pd()});var RYe=v(()=>{});var Pie=v(()=>{Qs();sie();pd()});var Cie=v(()=>{EV();sie();xS();bV();Qs();RYe();pd();oie();aie();cie();_V();uie();lie();die();fie();pie();hie();mie();gie();yie();Sie();Eie();bie();_ie();Tie();vie();Aie();Rie();Oie();vV();wie();TV();kie();Iie();AV();xie();Nie();Pie();Pie()});function Mie(e){let n=tV(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=M9e(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Die(e,t){let n=wS(e,t);if(!n.success)throw n.error;return n.data}var kYe=v(()=>{nV();Cie()});function IYe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function xYe(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];IYe(o)&&IYe(s)?n[i]={...o,...s}:n[i]=s}return n}var hcn,RV,OYe=v(()=>{nV();O_();AYe();kYe();hcn=6e4,RV=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(uV,n=>{this._oncancel(n)}),this.setNotificationHandler(dV,n=>{this._onprogress(n)}),this.setRequestHandler(lV,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(fV,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(hV,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(!IS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(IS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[kS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(mV,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(yV,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(IS(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),XP(s)||mYe(s)?this._onresponse(s):qre(s)?this._onrequest(s,o):hYe(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?.[kS]?.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=dYe(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),XP(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(XP(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),XP(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},IS(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||{},[kS]: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(b=>this._onerror(new Error(`Failed to send cancellation: ${b}`)));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=wS(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??hcn,y=()=>h(rn.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 b=this._responseHandlers.get(f);b?b(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},pV,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},gV,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},SYe,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||{},[kS]: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||{},[kS]: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||{},[kS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Mie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Die(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=Mie(t);this._notificationHandlers.set(r,i=>{let s=Die(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"&&qre(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=nC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),IS(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(IS(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=nC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),IS(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 cC=class{};tr._CodeOrName=cC;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var N_=class extends cC{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=N_;var hd=class extends cC{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 N_&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=hd;tr.nil=new hd("");function NYe(e,...t){let n=[e[0]],r=0;for(;r{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.ValueScope=_u.ValueScopeName=_u.Scope=_u.varKinds=_u.UsedValueState=void 0;var bu=Kw(),Fie=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},wV;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(wV||(_u.UsedValueState=wV={}));_u.varKinds={const:new bu.Name("const"),let:new bu.Name("let"),var:new bu.Name("var")};var kV=class{constructor({prefixes:t,parent:n}={}){this._names={},this._prefixes=t,this._parent=n}toName(t){return t instanceof bu.Name?t:this.name(t)}name(t){return new bu.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}}};_u.Scope=kV;var IV=class extends bu.Name{constructor(t,n){super(n),this.prefix=t}setValue(t,{property:n,itemIndex:r}){this.value=t,this.scopePath=(0,bu._)`.${new bu.Name(n)}[${r}]`}};_u.ValueScopeName=IV;var vcn=(0,bu._)`\n`,jie=class extends kV{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?vcn:bu.nil}}get(){return this._scope}name(t){return new IV(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,bu._)`${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=bu.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,wV.Started);let l=n(u);if(l){let d=this.opts.es5?_u.varKinds.var:_u.varKinds.const;s=(0,bu._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))s=(0,bu._)`${s}${l}${this.opts._n}`;else throw new Fie(u);c.set(u,wV.Completed)})}return s}};_u.ValueScope=jie});var xt=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(),_f=xV(),OS=Kw();Object.defineProperty(Sn,"_",{enumerable:!0,get:function(){return OS._}});Object.defineProperty(Sn,"str",{enumerable:!0,get:function(){return OS.str}});Object.defineProperty(Sn,"strConcat",{enumerable:!0,get:function(){return OS.strConcat}});Object.defineProperty(Sn,"nil",{enumerable:!0,get:function(){return OS.nil}});Object.defineProperty(Sn,"getProperty",{enumerable:!0,get:function(){return OS.getProperty}});Object.defineProperty(Sn,"stringify",{enumerable:!0,get:function(){return OS.stringify}});Object.defineProperty(Sn,"regexpCode",{enumerable:!0,get:function(){return OS.regexpCode}});Object.defineProperty(Sn,"Name",{enumerable:!0,get:function(){return OS.Name}});var CV=xV();Object.defineProperty(Sn,"Scope",{enumerable:!0,get:function(){return CV.Scope}});Object.defineProperty(Sn,"ValueScope",{enumerable:!0,get:function(){return CV.ValueScope}});Object.defineProperty(Sn,"ValueScopeName",{enumerable:!0,get:function(){return CV.ValueScopeName}});Object.defineProperty(Sn,"varKinds",{enumerable:!0,get:function(){return CV.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}},Hie=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?_f.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=Yw(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},OV=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=Yw(this.rhs,t,n),this}get names(){let t=this.lhs instanceof Wn.Name?{}:{...this.lhs.names};return PV(t,this.rhs)}},qie=class extends OV{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Bie=class extends zm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Gie=class extends zm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},zie=class extends zm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Vie=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=Yw(this.code,t,n),this}get names(){return this.code instanceof Wn._CodeOrName?this.code.names:{}}},lC=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)||(Acn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>M_(t,n.names),{})}},Vm=class extends lC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Wie=class extends lC{},Zw=class extends Vm{};Zw.kind="else";var P_=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 Zw(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(CYe(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=Yw(this.condition,t,n),this}get names(){let t=super.names;return PV(t,this.condition),this.else&&M_(t,this.else.names),t}};P_.kind="if";var C_=class extends Vm{};C_.kind="for";var Kie=class extends C_{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=Yw(this.iteration,t,n),this}get names(){return M_(super.names,this.iteration.names)}},Zie=class extends C_{constructor(t,n,r,i){super(),this.varKind=t,this.name=n,this.from=r,this.to=i}render(t){let n=t.es5?_f.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=PV(super.names,this.from);return PV(t,this.to)}},NV=class extends C_{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=Yw(this.iterable,t,n),this}get names(){return M_(super.names,this.iterable.names)}},dC=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)}};dC.kind="func";var fC=class extends lC{render(t){return"return "+super.render(t)}};fC.kind="return";var Yie=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&&M_(t,this.catch.names),this.finally&&M_(t,this.finally.names),t}},pC=class extends Vm{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};pC.kind="catch";var hC=class extends Vm{render(t){return"finally"+super.render(t)}};hC.kind="finally";var Jie=class{constructor(t,n={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...n,_n:n.lines?` -`:""},this._extScope=t,this._scope=new _f.Scope({parent:t}),this._nodes=[new Wie]}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 Hie(t,s,r)),s}const(t,n,r){return this._def(_f.varKinds.const,t,n,r)}let(t,n,r){return this._def(_f.varKinds.let,t,n,r)}var(t,n,r){return this._def(_f.varKinds.var,t,n,r)}assign(t,n,r){return this._leafNode(new OV(t,n,r))}add(t,n){return this._leafNode(new qie(t,Sn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new Vie(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 P_(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 P_(t))}else(){return this._elseNode(new Zw)}endIf(){return this._endBlockNode(P_,Zw)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new Kie(t),n)}forRange(t,n,r,i,s=this.opts.es5?_f.varKinds.var:_f.varKinds.let){let o=this._scope.toName(t);return this._for(new Zie(s,o,n,r),()=>i(o))}forOf(t,n,r,i=_f.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 NV("of",i,s,n),()=>r(s))}forIn(t,n,r,i=this.opts.es5?_f.varKinds.var:_f.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 NV("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(C_)}label(t){return this._leafNode(new Bie(t))}break(t){return this._leafNode(new Gie(t))}return(t){let n=new fC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(fC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Yie;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new pC(s),n(s)}return r&&(this._currNode=i.finally=new hC,this.code(r)),this._endBlockNode(pC,hC)}throw(t){return this._leafNode(new zie(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 dC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(dC)}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 P_))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=Jie;function M_(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function PV(e,t){return t instanceof Wn._CodeOrName?M_(e,t.names):e}function Yw(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 Acn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function CYe(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${Xie(e)}`}Sn.not=CYe;var Rcn=MYe(Sn.operators.AND);function wcn(...e){return e.reduce(Rcn)}Sn.and=wcn;var kcn=MYe(Sn.operators.OR);function Icn(...e){return e.reduce(kcn)}Sn.or=Icn;function MYe(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${Xie(t)} ${e} ${Xie(n)}`}function Xie(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=xt(),xcn=Kw();function Ocn(e){let t={};for(let n of e)t[n]=!0;return t}An.toHash=Ocn;function Ncn(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(UYe(e,t),!FYe(t,e.self.RULES.all))}An.alwaysValidSchema=Ncn;function UYe(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]||qYe(e,`unknown keyword: "${s}"`)}An.checkUnknownRules=UYe;function FYe(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}An.schemaHasRules=FYe;function Pcn(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=Pcn;function Ccn({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=Ccn;function Mcn(e){return jYe(decodeURIComponent(e))}An.unescapeFragment=Mcn;function Dcn(e){return encodeURIComponent($ie(e))}An.escapeFragment=Dcn;function $ie(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}An.escapeJsonPointer=$ie;function jYe(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}An.unescapeJsonPointer=jYe;function Lcn(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}An.eachItem=Lcn;function DYe({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:DYe({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} || {}`),ese(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:HYe}),items:DYe({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 HYe(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&ese(e,n,t),n}An.evaluatedPropsToName=HYe;function ese(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}An.setEvaluated=ese;var LYe={};function Ucn(e,t){return e.scopeValue("func",{ref:t,code:LYe[t.code]||(LYe[t.code]=new xcn._Code(t.code))})}An.useFunc=Ucn;var Qie;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Qie||(An.Type=Qie={}));function Fcn(e,t,n){if(e instanceof Wr.Name){let r=t===Qie.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():"/"+$ie(e)}An.getErrorPath=Fcn;function qYe(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=qYe});var md=w(tse=>{"use strict";Object.defineProperty(tse,"__esModule",{value:!0});var nc=xt(),jcn={data:new nc.Name("data"),valCxt:new nc.Name("valCxt"),instancePath:new nc.Name("instancePath"),parentData:new nc.Name("parentData"),parentDataProperty:new nc.Name("parentDataProperty"),rootData:new nc.Name("rootData"),dynamicAnchors:new nc.Name("dynamicAnchors"),vErrors:new nc.Name("vErrors"),errors:new nc.Name("errors"),this:new nc.Name("this"),self:new nc.Name("self"),scope:new nc.Name("scope"),json:new nc.Name("json"),jsonPos:new nc.Name("jsonPos"),jsonLen:new nc.Name("jsonLen"),jsonPart:new nc.Name("jsonPart")};tse.default=jcn});var mC=w(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});rc.extendErrors=rc.resetErrorsCount=rc.reportExtraError=rc.reportError=rc.keyword$DataError=rc.keywordError=void 0;var Jn=xt(),MV=pn(),Bc=md();rc.keywordError={message:({keyword:e})=>(0,Jn.str)`must pass "${e}" keyword validation`};rc.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 Hcn(e,t=rc.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=zYe(e,t,n);r??(o||a)?BYe(s,c):GYe(i,(0,Jn._)`[${c}]`)}rc.reportError=Hcn;function qcn(e,t=rc.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=zYe(e,t,n);BYe(i,a),s||o||GYe(r,Bc.default.vErrors)}rc.reportExtraError=qcn;function Bcn(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)))}rc.resetErrorsCount=Bcn;function Gcn({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))})}rc.extendErrors=Gcn;function BYe(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 GYe(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 D_={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 zYe(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:zcn(e,t,n)}function zcn(e,t,n={}){let{gen:r,it:i}=e,s=[Vcn(i,n),Wcn(e,n)];return Kcn(e,t,s),r.object(...s)}function Vcn({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,MV.getErrorPath)(t,MV.Type.Str)}`:e;return[Bc.default.instancePath,(0,Jn.strConcat)(Bc.default.instancePath,n)]}function Wcn({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,MV.getErrorPath)(n,MV.Type.Str)}`),[D_.schemaPath,i]}function Kcn(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([D_.keyword,i],[D_.params,typeof t=="function"?t(e):t||(0,Jn._)`{}`]),c.messages&&r.push([D_.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([D_.schema,o],[D_.parentSchema,(0,Jn._)`${l}${d}`],[Bc.default.data,s]),u&&r.push([D_.propertyName,u])}});var WYe=w(Jw=>{"use strict";Object.defineProperty(Jw,"__esModule",{value:!0});Jw.boolOrEmptySchema=Jw.topBoolOrEmptySchema=void 0;var Zcn=mC(),Ycn=xt(),Jcn=md(),Xcn={message:"boolean schema is false"};function Qcn(e){let{gen:t,schema:n,validateName:r}=e;n===!1?VYe(e,!1):typeof n=="object"&&n.$async===!0?t.return(Jcn.default.data):(t.assign((0,Ycn._)`${r}.errors`,null),t.return(!0))}Jw.topBoolOrEmptySchema=Qcn;function $cn(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),VYe(e)):n.var(t,!0)}Jw.boolOrEmptySchema=$cn;function VYe(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,Zcn.reportError)(i,Xcn,void 0,t)}});var nse=w(Xw=>{"use strict";Object.defineProperty(Xw,"__esModule",{value:!0});Xw.getRules=Xw.isJSONType=void 0;var eun=["string","number","integer","boolean","null","object","array"],tun=new Set(eun);function nun(e){return typeof e=="string"&&tun.has(e)}Xw.isJSONType=nun;function run(){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=run});var rse=w(NS=>{"use strict";Object.defineProperty(NS,"__esModule",{value:!0});NS.shouldUseRule=NS.shouldUseGroup=NS.schemaHasRulesForType=void 0;function iun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&KYe(e,r)}NS.schemaHasRulesForType=iun;function KYe(e,t){return t.rules.some(n=>ZYe(e,n))}NS.shouldUseGroup=KYe;function ZYe(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=ZYe});var gC=w(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.reportTypeError=ic.checkDataTypes=ic.checkDataType=ic.coerceAndCheckDataType=ic.getJSONTypes=ic.getSchemaTypes=ic.DataType=void 0;var sun=nse(),oun=rse(),aun=mC(),hn=xt(),YYe=pn(),Qw;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Qw||(ic.DataType=Qw={}));function cun(e){let t=JYe(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}ic.getSchemaTypes=cun;function JYe(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(sun.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}ic.getJSONTypes=JYe;function uun(e,t){let{gen:n,data:r,opts:i}=e,s=lun(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,oun.schemaHasRulesForType)(e,t[0]));if(o){let a=sse(t,r,i.strictNumbers,Qw.Wrong);n.if(a,()=>{s.length?dun(e,t,s):ose(e)})}return o}ic.coerceAndCheckDataType=uun;var XYe=new Set(["string","number","integer","boolean","null"]);function lun(e,t){return t?e.filter(n=>XYe.has(n)||t==="array"&&n==="array"):[]}function dun(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)(XYe.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),ose(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),fun(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 ? [${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=!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 fun({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function ise(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)}}ic.checkDataType=ise;function sse(e,t,n,r){if(e.length===1)return ise(e[0],t,n,r);let i,s=(0,YYe.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,ise(o,t,n,r));return i}ic.checkDataTypes=sse;var pun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function ose(e){let t=hun(e);(0,aun.reportError)(t,pun)}ic.reportTypeError=ose;function hun(e){let{gen:t,data:n,schema:r}=e,i=(0,YYe.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var $Ye=w(DV=>{"use strict";Object.defineProperty(DV,"__esModule",{value:!0});DV.assignDefaults=void 0;var $w=xt(),mun=pn();function gun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)QYe(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>QYe(e,s,i.default))}DV.assignDefaults=gun;function QYe(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,mun.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 ya=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=xt(),ase=pn(),PS=md(),yun=pn();function Sun(e,t){let{gen:n,data:r,it:i}=e;n.if(use(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=Sun;function Eun({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(use(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=Eun;function bun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=bun;function e5e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=e5e;function cse(e,t,n){return(0,gi._)`${e5e(e)}.call(${t}, ${n})`}Fr.isOwnProperty=cse;function _un(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${cse(e,t,n)}`:i}Fr.propertyInData=_un;function use(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(cse(e,t,n))):i}Fr.noPropertyInData=use;function t5e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=t5e;function Tun(e,t){return t5e(t).filter(n=>!(0,ase.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Tun;function vun({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=[[PS.default.instancePath,(0,gi.strConcat)(PS.default.instancePath,s)],[PS.default.parentData,o.parentData],[PS.default.parentDataProperty,o.parentDataProperty],[PS.default.rootData,PS.default.rootData]];o.opts.dynamicRef&&d.push([PS.default.dynamicAnchors,PS.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=vun;var Aun=(0,gi._)`new RegExp`;function Run({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"?Aun:(0,yun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=Run;function wun(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:ase.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=wun;function kun(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,ase.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=kun});var i5e=w(dh=>{"use strict";Object.defineProperty(dh,"__esModule",{value:!0});dh.validateKeywordUsage=dh.validSchemaType=dh.funcKeywordCode=dh.macroKeywordCode=void 0;var Gc=xt(),L_=md(),Iun=ya(),xun=mC();function Oun(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=r5e(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=Oun;function Nun(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;Cun(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=r5e(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&&n5e(e),y(()=>e.error());else{let g=t.async?p():h();t.modifying&&n5e(e),y(()=>Pun(e,g))}}function p(){let g=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(g,(0,Gc._)`${E}.errors`),()=>r.throw(E))),g}function h(){let g=(0,Gc._)`${l}.errors`;return r.assign(g,null),m(Gc.nil),g}function m(g=t.async?(0,Gc._)`await `:Gc.nil){let E=c.opts.passContext?L_.default.this:L_.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${g}${(0,Iun.callValidateCode)(e,l,E,S)}`,t.modifying)}function y(g){var E;r.if((0,Gc.not)((E=t.valid)!==null&&E!==void 0?E:d),g)}}dh.funcKeywordCode=Nun;function n5e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function Pun(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(L_.default.vErrors,(0,Gc._)`${L_.default.vErrors} === null ? ${t} : ${L_.default.vErrors}.concat(${t})`).assign(L_.default.errors,(0,Gc._)`${L_.default.vErrors}.length`),(0,xun.extendErrors)(e)},()=>e.error())}function Cun({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function r5e(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 Mun(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=Mun;function Dun({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=Dun});var o5e=w(CS=>{"use strict";Object.defineProperty(CS,"__esModule",{value:!0});CS.extendSubschemaMode=CS.extendSubschemaData=CS.getSubschema=void 0;var fh=xt(),s5e=pn();function Lun(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,s5e.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')}CS.getSubschema=Lun;function Uun(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,s5e.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]}}CS.extendSubschemaData=Uun;function Fun(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}CS.extendSubschemaMode=Fun});var yC=w((UVr,a5e)=>{"use strict";a5e.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 u5e=w((FVr,c5e)=>{"use strict";var MS=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(){};LV(t,r,i,e,"",e)};MS.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};MS.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};MS.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};MS.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 LV(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 MS.arrayKeywords)for(var f=0;f{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.getSchemaRefs=Tu.resolveUrl=Tu.normalizeId=Tu._getFullPath=Tu.getFullPath=Tu.inlineRef=void 0;var Hun=pn(),qun=yC(),Bun=u5e(),Gun=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function zun(e,t=!0){return typeof e=="boolean"?!0:t===!0?!lse(e):t?l5e(e)<=t:!1}Tu.inlineRef=zun;var Vun=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function lse(e){for(let t in e){if(Vun.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(lse)||typeof n=="object"&&lse(n))return!0}return!1}function l5e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!Gun.has(n)&&(typeof e[n]=="object"&&(0,Hun.eachItem)(e[n],r=>t+=l5e(r)),t===1/0))return 1/0}return t}function d5e(e,t="",n){n!==!1&&(t=ek(t));let r=e.parse(t);return f5e(e,r)}Tu.getFullPath=d5e;function f5e(e,t){return e.serialize(t).split("#")[0]+"#"}Tu._getFullPath=f5e;var Wun=/#\/?$/;function ek(e){return e?e.replace(Wun,""):""}Tu.normalizeId=ek;function Kun(e,t,n){return n=ek(n),e.resolve(t,n)}Tu.resolveUrl=Kun;var Zun=/^[a-z_][-a-z0-9._]*$/i;function Yun(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=ek(e[n]||t),s={"":i},o=d5e(r,i,!1),a={},c=new Set;return Bun(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 b=this.opts.uriResolver.resolve;if(S=ek(y?b(y,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!==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(!Zun.test(S))throw new Error(`invalid anchor "${S}"`);g.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!qun(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Tu.getSchemaRefs=Yun});var tk=w(DS=>{"use strict";Object.defineProperty(DS,"__esModule",{value:!0});DS.getData=DS.KeywordCxt=DS.validateFunctionCode=void 0;var y5e=WYe(),p5e=gC(),fse=rse(),UV=gC(),Jun=$Ye(),bC=i5e(),dse=o5e(),pt=xt(),Jt=md(),Xun=SC(),Wm=pn(),EC=mC();function Qun(e){if(b5e(e)&&(_5e(e),E5e(e))){tln(e);return}S5e(e,()=>(0,y5e.topBoolOrEmptySchema)(e))}DS.validateFunctionCode=Qun;function S5e({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"; ${h5e(n,i)}`),eln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Jt.default.data}, ${$un(i)}`,r.$async,()=>e.code(h5e(n,i)).code(s))}function $un(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 eln(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 tln(e){let{schema:t,opts:n,gen:r}=e;S5e(e,()=>{n.$comment&&t.$comment&&v5e(e),oln(e),r.let(Jt.default.vErrors,null),r.let(Jt.default.errors,0),n.unevaluated&&nln(e),T5e(e),uln(e)})}function nln(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 h5e(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 rln(e,t){if(b5e(e)&&(_5e(e),E5e(e))){iln(e,t);return}(0,y5e.boolOrEmptySchema)(e,t)}function E5e({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 b5e(e){return typeof e.schema!="boolean"}function iln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&v5e(e),aln(e),cln(e);let s=r.const("_errs",Jt.default.errors);T5e(e,s),r.var(t,(0,pt._)`${s} === ${Jt.default.errors}`)}function _5e(e){(0,Wm.checkUnknownRules)(e),sln(e)}function T5e(e,t){if(e.opts.jtd)return m5e(e,[],!1,t);let n=(0,p5e.getSchemaTypes)(e.schema),r=(0,p5e.coerceAndCheckDataType)(e,n);m5e(e,n,!r,t)}function sln(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 oln(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 aln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,Xun.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function cln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function v5e({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 uln(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&&lln(e),t.return((0,pt._)`${Jt.default.errors} === 0`))}function lln({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 m5e(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(()=>R5e(e,"$ref",l.all.$ref.definition));return}c.jtd||dln(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,fse.shouldUseGroup)(s,f)&&(f.type?(i.if((0,UV.checkDataType)(f.type,o,c.strictNumbers)),g5e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,UV.reportTypeError)(e)),i.endIf()):g5e(e,f),a||i.if((0,pt._)`${Jt.default.errors} === ${r||0}`))}}function g5e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,Jun.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,fse.shouldUseRule)(r,s)&&R5e(e,s.keyword,s.definition,t.type)})}function dln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(fln(e,t),e.opts.allowUnionTypes||pln(e,t),hln(e,e.dataTypes))}function fln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{A5e(e.dataTypes,n)||pse(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),gln(e,t)}}function pln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&pse(e,"use allowUnionTypes to allow union type keyword")}function hln(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,fse.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>mln(t,o))&&pse(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function mln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function A5e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function gln(e,t){let n=[];for(let r of e.dataTypes)A5e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function pse(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Wm.checkStrictMode)(e,t,e.opts.strictTypes)}var FV=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",w5e(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",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?EC.reportExtraError:EC.reportError)(this,this.def.error,n)}$dataError(){(0,EC.reportError)(this,this.def.$dataError||EC.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,EC.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,UV.checkDataTypes)(c,n,s.opts.strictNumbers,UV.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,dse.getSubschema)(this.it,t);(0,dse.extendSubschemaData)(r,this.it,t),(0,dse.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return rln(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}};DS.KeywordCxt=FV;function R5e(e,t,n,r){let i=new FV(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 yln=/^\/(?:[^~]|~0|~1)*$/,Sln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function w5e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Jt.default.rootData;if(e[0]==="/"){if(!yln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Jt.default.rootData}else{let u=Sln.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}`}}DS.getData=w5e});var _C=w(mse=>{"use strict";Object.defineProperty(mse,"__esModule",{value:!0});var hse=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};mse.default=hse});var Km=w(Sse=>{"use strict";Object.defineProperty(Sse,"__esModule",{value:!0});var gse=SC(),yse=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,gse.resolveUrl)(t,n,r),this.missingSchema=(0,gse.normalizeId)((0,gse.getFullPath)(t,this.missingRef))}};Sse.default=yse});var F_=w(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.resolveSchema=gd.getCompilingSchema=gd.resolveRef=gd.compileSchema=gd.SchemaEnv=void 0;var Tf=xt(),Eln=_C(),U_=md(),vf=SC(),k5e=pn(),bln=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,vf.normalizeId)(r?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r?.$async,this.refs={}}};gd.SchemaEnv=nk;function bse(e){let t=I5e.call(this,e);if(t)return t;let n=(0,vf.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new Tf.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a;e.$async&&(a=o.scopeValue("Error",{ref:Eln.default,code:(0,Tf._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:U_.default.data,parentData:U_.default.parentData,parentDataProperty:U_.default.parentDataProperty,dataNames:[U_.default.data],dataPathArr:[Tf.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,Tf.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:a,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:Tf.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Tf._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,bln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(U_.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${U_.default.self}`,`${U_.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 Tf.Name?void 0:h,items:m instanceof Tf.Name?void 0:m,dynamicProps:h instanceof Tf.Name,dynamicItems:m instanceof Tf.Name},p.source&&(p.source.evaluated=(0,Tf.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)}}gd.compileSchema=bse;function _ln(e,t,n){var r;n=(0,vf.resolveUrl)(this.opts.uriResolver,t,n);let i=e.refs[n];if(i)return i;let s=Aln.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]=Tln.call(this,s)}gd.resolveRef=_ln;function Tln(e){return(0,vf.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:bse.call(this,e)}function I5e(e){for(let t of this._compilations)if(vln(t,e))return t}gd.getCompilingSchema=I5e;function vln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Aln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||jV.call(this,e,t)}function jV(e,t){let n=this.opts.uriResolver.parse(t),r=(0,vf._getFullPath)(this.opts.uriResolver,n),i=(0,vf.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===i)return Ese.call(this,n,e);let s=(0,vf.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=jV.call(this,e,o);return typeof a?.schema!="object"?void 0:Ese.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||bse.call(this,o),s===(0,vf.normalizeId)(t)){let{schema:a}=o,{schemaId:c}=this.opts,u=a[c];return u&&(i=(0,vf.resolveUrl)(this.opts.uriResolver,i,u)),new nk({schema:a,schemaId:c,root:e,baseId:i})}return Ese.call(this,n,o)}}gd.resolveSchema=jV;var Rln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Ese(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,k5e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!Rln.has(a)&&u&&(t=(0,vf.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,k5e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,vf.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=jV.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 x5e=w((zVr,wln)=>{wln.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 Tse=w((VVr,C5e)=>{"use strict";var kln=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),N5e=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 _se(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 Iln=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function O5e(e){return e.length=0,!0}function xln(e,t,n){if(e.length){let r=_se(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function Oln(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=xln;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=O5e}else{i.push(u);continue}}return i.length&&(a===O5e?n.zone=i.join(""):o?r.push(i.join("")):r.push(_se(i))),n.address=r.join(""),n}function P5e(e){if(Nln(e,":")<2)return{host:e,isIPV6:!1};let t=Oln(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 Nln(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:Dln}=Tse(),Lln=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Uln=["http","https","ws","wss","urn","urn:uuid"];function Fln(e){return Uln.indexOf(e)!==-1}function vse(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 M5e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function D5e(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 jln(e){return e.secure=vse(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Hln(e){if((e.port===(vse(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 qln(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(Lln);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=Ase(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Bln(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=Ase(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 Gln(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!Dln(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function zln(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var L5e={scheme:"http",domainHost:!0,parse:M5e,serialize:D5e},Vln={scheme:"https",domainHost:L5e.domainHost,parse:M5e,serialize:D5e},HV={scheme:"ws",domainHost:!0,parse:jln,serialize:Hln},Wln={scheme:"wss",domainHost:HV.domainHost,parse:HV.parse,serialize:HV.serialize},Kln={scheme:"urn",parse:qln,serialize:Bln,skipNormalize:!0},Zln={scheme:"urn:uuid",parse:Gln,serialize:zln,skipNormalize:!0},qV={http:L5e,https:Vln,ws:HV,wss:Wln,urn:Kln,"urn:uuid":Zln};Object.setPrototypeOf(qV,null);function Ase(e){return e&&(qV[e]||qV[e.toLowerCase()])||void 0}U5e.exports={wsIsSecure:vse,SCHEMES:qV,isValidSchemeName:Fln,getSchemeHandler:Ase}});var zV=w((KVr,GV)=>{"use strict";var{normalizeIPv6:Yln,removeDotSegments:TC,recomposeAuthority:Jln,normalizeComponentEncoding:BV,isIPv4:Xln,nonSimpleDomain:Qln}=Tse(),{SCHEMES:$ln,getSchemeHandler:j5e}=F5e();function edn(e,t){return typeof e=="string"?e=ph(Zm(e,t),t):typeof e=="object"&&(e=Zm(ph(e,t),t)),e}function tdn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=H5e(Zm(e,r),Zm(t,r),r,!0);return r.skipEscape=!0,ph(i,r)}function H5e(e,t,n,r){let i={};return r||(e=Zm(ph(e,n),n),t=Zm(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=TC(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=TC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=TC(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=TC(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 ndn(e,t,n){return typeof e=="string"?(e=unescape(e),e=ph(BV(Zm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=ph(BV(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=ph(BV(Zm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=ph(BV(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=j5e(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=Jln(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=TC(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 rdn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\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(rdn);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(Xln(r.host)===!1){let c=Yln(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=j5e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&Qln(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 Rse={SCHEMES:$ln,normalize:edn,resolve:tdn,resolveComponent:H5e,equal:ndn,serialize:ph,parse:Zm};GV.exports=Rse;GV.exports.default=Rse;GV.exports.fastUri=Rse});var B5e=w(wse=>{"use strict";Object.defineProperty(wse,"__esModule",{value:!0});var q5e=zV();q5e.code='require("ajv/dist/runtime/uri").default';wse.default=q5e});var xse=w(Sa=>{"use strict";Object.defineProperty(Sa,"__esModule",{value:!0});Sa.CodeGen=Sa.Name=Sa.nil=Sa.stringify=Sa.str=Sa._=Sa.KeywordCxt=void 0;var idn=tk();Object.defineProperty(Sa,"KeywordCxt",{enumerable:!0,get:function(){return idn.KeywordCxt}});var rk=xt();Object.defineProperty(Sa,"_",{enumerable:!0,get:function(){return rk._}});Object.defineProperty(Sa,"str",{enumerable:!0,get:function(){return rk.str}});Object.defineProperty(Sa,"stringify",{enumerable:!0,get:function(){return rk.stringify}});Object.defineProperty(Sa,"nil",{enumerable:!0,get:function(){return rk.nil}});Object.defineProperty(Sa,"Name",{enumerable:!0,get:function(){return rk.Name}});Object.defineProperty(Sa,"CodeGen",{enumerable:!0,get:function(){return rk.CodeGen}});var sdn=_C(),K5e=Km(),odn=nse(),vC=F_(),adn=xt(),AC=SC(),VV=gC(),Ise=pn(),G5e=x5e(),cdn=B5e(),Z5e=(e,t)=>new RegExp(e,t);Z5e.code="new RegExp";var udn=["removeAdditional","useDefaults","coerceTypes"],ldn=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ddn={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."},fdn={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},z5e=200;function pdn(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,x;let k=e.strict,N=(t=e.code)===null||t===void 0?void 0:t.optimize,P=N===!0||N===void 0?1:N||0,C=(r=(n=e.code)===null||n===void 0?void 0:n.regExp)!==null&&r!==void 0?r:Z5e,F=(i=e.uriResolver)!==null&&i!==void 0?i:cdn.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:P,regExp:C}:{optimize:P,regExp:C},loopRequired:(m=e.loopRequired)!==null&&m!==void 0?m:z5e,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:z5e,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:(b=e.schemaId)!==null&&b!==void 0?b:"$id",addUsedSchema:(_=e.addUsedSchema)!==null&&_!==void 0?_:!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 RC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...pdn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new adn.ValueScope({scope:{},prefixes:ldn,es5:n,lines:r}),this.logger=Edn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,odn.getRules)(),V5e.call(this,ddn,t,"NOT SUPPORTED"),V5e.call(this,fdn,t,"DEPRECATED","warn"),this._metaOpts=ydn.call(this),t.formats&&mdn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&gdn.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),hdn.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=G5e;r==="id"&&(i={...G5e},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 K5e.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,AC.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=W5e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new vC.SchemaEnv({schema:{},schemaId:r});if(n=vC.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=W5e.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,AC.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(_dn.call(this,r,n),!n)return(0,Ise.eachItem)(r,s=>kse.call(this,s)),this;vdn.call(this,n);let i={...n,type:(0,VV.getJSONTypes)(n.type),schemaType:(0,VV.getJSONTypes)(n.schemaType)};return(0,Ise.eachItem)(r,i.type.length===0?s=>kse.call(this,s,i):s=>i.type.forEach(o=>kse.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]=Y5e(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,AC.normalizeId)(o||r);let u=AC.getSchemaRefs.call(this,t,r);return c=new vC.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):vC.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{vC.compileSchema.call(this,t)}finally{this.opts=n}}};RC.ValidationError=sdn.default;RC.MissingRefError=K5e.default;Sa.default=RC;function V5e(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 W5e(e){return e=(0,AC.normalizeId)(e),this.schemas[e]||this.refs[e]}function hdn(){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 mdn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function gdn(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 ydn(){let e={...this.opts};for(let t of udn)delete e[t];return e}var Sdn={log(){},warn(){},error(){}};function Edn(e){if(e===!1)return Sdn;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 bdn=/^[a-z_$][a-z0-9_$:-]*$/i;function _dn(e,t){let{RULES:n}=this;if((0,Ise.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!bdn.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 kse(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,VV.getJSONTypes)(t.type),schemaType:(0,VV.getJSONTypes)(t.schemaType)}};t.before?Tdn.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 Tdn(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 vdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Y5e(t)),e.validateSchema=this.compile(t,!0))}var Adn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Y5e(e){return{anyOf:[e,Adn]}}});var J5e=w(Ose=>{"use strict";Object.defineProperty(Ose,"__esModule",{value:!0});var Rdn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Ose.default=Rdn});var Nse=w(j_=>{"use strict";Object.defineProperty(j_,"__esModule",{value:!0});j_.callRef=j_.getValidate=void 0;var wdn=Km(),X5e=ya(),vu=xt(),ik=md(),Q5e=F_(),WV=pn(),kdn={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=Q5e.resolveRef.call(c,u,i,n);if(l===void 0)throw new wdn.default(r.opts.uriResolver,i,n);if(l instanceof Q5e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return KV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return KV(e,(0,vu._)`${h}.validate`,u,u.$async)}function f(h){let m=$5e(e,h);KV(e,m,h,h.$async)}function p(h){let m=t.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,vu.stringify)(h)}:{ref:h}),y=t.name("valid"),g=e.subschema({schema:h,dataTypes:[],schemaPath:vu.nil,topSchemaRef:m,errSchemaPath:n},y);e.mergeEvaluated(g),e.ok(y)}}};function $5e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,vu._)`${n.scopeValue("wrapper",{ref:t})}.validate`}j_.getValidate=$5e;function KV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?ik.default.this:vu.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,vu._)`await ${(0,X5e.callValidateCode)(e,t,u)}`),p(t),o||i.assign(h,!0)},m=>{i.if((0,vu._)`!(${m} instanceof ${s.ValidationError})`,()=>i.throw(m)),f(m),o||i.assign(h,!1)}),e.ok(h)}function d(){e.result((0,X5e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,vu._)`${h}.errors`;i.assign(ik.default.vErrors,(0,vu._)`${ik.default.vErrors} === null ? ${m} : ${ik.default.vErrors}.concat(${m})`),i.assign(ik.default.errors,(0,vu._)`${ik.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=WV.mergeEvaluated.props(i,y.props,s.props));else{let g=i.var("props",(0,vu._)`${h}.evaluated.props`);s.props=WV.mergeEvaluated.props(i,g,s.props,vu.Name)}if(s.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(s.items=WV.mergeEvaluated.items(i,y.items,s.items));else{let g=i.var("items",(0,vu._)`${h}.evaluated.items`);s.items=WV.mergeEvaluated.items(i,g,s.items,vu.Name)}}}j_.callRef=KV;j_.default=kdn});var e6e=w(Pse=>{"use strict";Object.defineProperty(Pse,"__esModule",{value:!0});var Idn=J5e(),xdn=Nse(),Odn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Idn.default,xdn.default];Pse.default=Odn});var t6e=w(Cse=>{"use strict";Object.defineProperty(Cse,"__esModule",{value:!0});var ZV=xt(),LS=ZV.operators,YV={maximum:{okStr:"<=",ok:LS.LTE,fail:LS.GT},minimum:{okStr:">=",ok:LS.GTE,fail:LS.LT},exclusiveMaximum:{okStr:"<",ok:LS.LT,fail:LS.GTE},exclusiveMinimum:{okStr:">",ok:LS.GT,fail:LS.LTE}},Ndn={message:({keyword:e,schemaCode:t})=>(0,ZV.str)`must be ${YV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,ZV._)`{comparison: ${YV[e].okStr}, limit: ${t}}`},Pdn={keyword:Object.keys(YV),type:"number",schemaType:"number",$data:!0,error:Ndn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,ZV._)`${n} ${YV[t].fail} ${r} || isNaN(${n})`)}};Cse.default=Pdn});var n6e=w(Mse=>{"use strict";Object.defineProperty(Mse,"__esModule",{value:!0});var wC=xt(),Cdn={message:({schemaCode:e})=>(0,wC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,wC._)`{multipleOf: ${e}}`},Mdn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Cdn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,wC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,wC._)`${o} !== parseInt(${o})`;e.fail$data((0,wC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Mse.default=Mdn});var i6e=w(Dse=>{"use strict";Object.defineProperty(Dse,"__esModule",{value:!0});function r6e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Lse,"__esModule",{value:!0});var H_=xt(),Ddn=pn(),Ldn=i6e(),Udn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,H_.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,H_._)`{limit: ${e}}`},Fdn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Udn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?H_.operators.GT:H_.operators.LT,o=i.opts.unicode===!1?(0,H_._)`${n}.length`:(0,H_._)`${(0,Ddn.useFunc)(e.gen,Ldn.default)}(${n})`;e.fail$data((0,H_._)`${o} ${s} ${r}`)}};Lse.default=Fdn});var o6e=w(Use=>{"use strict";Object.defineProperty(Use,"__esModule",{value:!0});var jdn=ya(),Hdn=pn(),sk=xt(),qdn={message:({schemaCode:e})=>(0,sk.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,sk._)`{pattern: ${e}}`},Bdn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:qdn,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,Hdn.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,jdn.usePattern)(e,i);e.fail$data((0,sk._)`!${c}.test(${n})`)}}};Use.default=Bdn});var a6e=w(Fse=>{"use strict";Object.defineProperty(Fse,"__esModule",{value:!0});var kC=xt(),Gdn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,kC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,kC._)`{limit: ${e}}`},zdn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Gdn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?kC.operators.GT:kC.operators.LT;e.fail$data((0,kC._)`Object.keys(${n}).length ${i} ${r}`)}};Fse.default=zdn});var c6e=w(jse=>{"use strict";Object.defineProperty(jse,"__esModule",{value:!0});var IC=ya(),xC=xt(),Vdn=pn(),Wdn={message:({params:{missingProperty:e}})=>(0,xC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,xC._)`{missingProperty: ${e}}`},Kdn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Wdn,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,Vdn.checkStrictMode)(o,g,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(xC.nil,d);else for(let p of n)(0,IC.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,IC.checkMissingProp)(e,n,p)),(0,IC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,IC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,IC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,xC.not)(h),()=>{e.error(),t.break()})},xC.nil)}}};jse.default=Kdn});var u6e=w(Hse=>{"use strict";Object.defineProperty(Hse,"__esModule",{value:!0});var OC=xt(),Zdn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,OC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,OC._)`{limit: ${e}}`},Ydn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Zdn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?OC.operators.GT:OC.operators.LT;e.fail$data((0,OC._)`${n}.length ${i} ${r}`)}};Hse.default=Ydn});var NC=w(qse=>{"use strict";Object.defineProperty(qse,"__esModule",{value:!0});var l6e=yC();l6e.code='require("ajv/dist/runtime/equal").default';qse.default=l6e});var d6e=w(Gse=>{"use strict";Object.defineProperty(Gse,"__esModule",{value:!0});var Bse=gC(),Ea=xt(),Jdn=pn(),Xdn=NC(),Qdn={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}}`},$dn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Qdn,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,Bse.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 y=t.name("item"),g=(0,Bse.checkDataTypes)(u,y,a.opts.strictNumbers,Bse.DataType.Wrong),E=t.const("indices",(0,Ea._)`{}`);t.for((0,Ea._)`;${h}--;`,()=>{t.let(y,(0,Ea._)`${n}[${h}]`),t.if(g,(0,Ea._)`continue`),u.length>1&&t.if((0,Ea._)`typeof ${y} == "string"`,(0,Ea._)`${y} += "_"`),t.if((0,Ea._)`typeof ${E}[${y}] == "number"`,()=>{t.assign(m,(0,Ea._)`${E}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,Ea._)`${E}[${y}] = ${h}`)})}function p(h,m){let y=(0,Jdn.useFunc)(t,Xdn.default),g=t.name("outer");t.label(g).for((0,Ea._)`;${h}--;`,()=>t.for((0,Ea._)`${m} = ${h}; ${m}--;`,()=>t.if((0,Ea._)`${y}(${n}[${h}], ${n}[${m}])`,()=>{e.error(),t.assign(c,!1).break(g)})))}}};Gse.default=$dn});var f6e=w(Vse=>{"use strict";Object.defineProperty(Vse,"__esModule",{value:!0});var zse=xt(),efn=pn(),tfn=NC(),nfn={message:"must be equal to constant",params:({schemaCode:e})=>(0,zse._)`{allowedValue: ${e}}`},rfn={keyword:"const",$data:!0,error:nfn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,zse._)`!${(0,efn.useFunc)(t,tfn.default)}(${n}, ${i})`):e.fail((0,zse._)`${s} !== ${n}`)}};Vse.default=rfn});var p6e=w(Wse=>{"use strict";Object.defineProperty(Wse,"__esModule",{value:!0});var PC=xt(),ifn=pn(),sfn=NC(),ofn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,PC._)`{allowedValues: ${e}}`},afn={keyword:"enum",schemaType:"array",$data:!0,error:ofn,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,ifn.useFunc)(t,sfn.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,PC.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,PC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,PC._)`${u()}(${n}, ${p}[${h}])`:(0,PC._)`${n} === ${m}`}}};Wse.default=afn});var h6e=w(Kse=>{"use strict";Object.defineProperty(Kse,"__esModule",{value:!0});var cfn=t6e(),ufn=n6e(),lfn=s6e(),dfn=o6e(),ffn=a6e(),pfn=c6e(),hfn=u6e(),mfn=d6e(),gfn=f6e(),yfn=p6e(),Sfn=[cfn.default,ufn.default,lfn.default,dfn.default,ffn.default,pfn.default,hfn.default,mfn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},gfn.default,yfn.default];Kse.default=Sfn});var Yse=w(CC=>{"use strict";Object.defineProperty(CC,"__esModule",{value:!0});CC.validateAdditionalItems=void 0;var q_=xt(),Zse=pn(),Efn={message:({params:{len:e}})=>(0,q_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,q_._)`{limit: ${e}}`},bfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Efn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,Zse.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}m6e(e,r)}};function m6e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,q_._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,q_._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,Zse.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,q_._)`${a} <= ${t.length}`);n.if((0,q_.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:Zse.Type.Num},u),o.allErrors||n.if((0,q_.not)(u),()=>n.break())})}}CC.validateAdditionalItems=m6e;CC.default=bfn});var Jse=w(MC=>{"use strict";Object.defineProperty(MC,"__esModule",{value:!0});MC.validateTuple=void 0;var g6e=xt(),JV=pn(),_fn=ya(),Tfn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return y6e(e,"additionalItems",t);n.items=!0,!(0,JV.alwaysValidSchema)(n,t)&&e.ok((0,_fn.validateArray)(e))}};function y6e(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=JV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,g6e._)`${s}.length`);n.forEach((d,f)=>{(0,JV.alwaysValidSchema)(a,d)||(r.if((0,g6e._)`${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,JV.checkStrictMode)(a,y,f.strictTuples)}}}MC.validateTuple=y6e;MC.default=Tfn});var S6e=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});var vfn=Jse(),Afn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,vfn.validateTuple)(e,"items")};Xse.default=Afn});var b6e=w(Qse=>{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});var E6e=xt(),Rfn=pn(),wfn=ya(),kfn=Yse(),Ifn={message:({params:{len:e}})=>(0,E6e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,E6e._)`{limit: ${e}}`},xfn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Ifn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,Rfn.alwaysValidSchema)(r,t)&&(i?(0,kfn.validateAdditionalItems)(e,i):e.ok((0,wfn.validateArray)(e)))}};Qse.default=xfn});var _6e=w($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var yd=xt(),XV=pn(),Ofn={message:({params:{min:e,max:t}})=>t===void 0?(0,yd.str)`must contain at least ${e} valid item(s)`:(0,yd.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,yd._)`{minContains: ${e}}`:(0,yd._)`{minContains: ${e}, maxContains: ${t}}`},Nfn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Ofn,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,yd._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,XV.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,XV.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,XV.alwaysValidSchema)(s,n)){let m=(0,yd._)`${l} >= ${o}`;a!==void 0&&(m=(0,yd._)`${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,yd._)`${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:XV.Type.Num,compositeRule:!0},m),y()})}function h(m){t.code((0,yd._)`${m}++`),a===void 0?t.if((0,yd._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,yd._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,yd._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};$se.default=Nfn});var A6e=w(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});hh.validateSchemaDeps=hh.validatePropertyDeps=hh.error=void 0;var eoe=xt(),Pfn=pn(),DC=ya();hh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,eoe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,eoe._)`{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 Cfn={keyword:"dependencies",type:"object",schemaType:"object",error:hh.error,code(e){let[t,n]=Mfn(e);T6e(e,t),v6e(e,n)}};function Mfn({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 T6e(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,DC.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,DC.checkReportMissingProp)(e,u)}):(n.if((0,eoe._)`${c} && (${(0,DC.checkMissingProp)(e,a,s)})`),(0,DC.reportMissingProp)(e,s),n.else())}}hh.validatePropertyDeps=T6e;function v6e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,Pfn.alwaysValidSchema)(s,t[a])||(n.if((0,DC.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=v6e;hh.default=Cfn});var w6e=w(toe=>{"use strict";Object.defineProperty(toe,"__esModule",{value:!0});var R6e=xt(),Dfn=pn(),Lfn={message:"property name must be valid",params:({params:e})=>(0,R6e._)`{propertyName: ${e.propertyName}}`},Ufn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Lfn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,Dfn.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,R6e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};toe.default=Ufn});var roe=w(noe=>{"use strict";Object.defineProperty(noe,"__esModule",{value:!0});var QV=ya(),Af=xt(),Ffn=md(),$V=pn(),jfn={message:"must NOT have additional properties",params:({params:e})=>(0,Af._)`{additionalProperty: ${e.additionalProperty}}`},Hfn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:jfn,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,$V.alwaysValidSchema)(o,n))return;let u=(0,QV.allSchemaProperties)(r.properties),l=(0,QV.allSchemaProperties)(r.patternProperties);d(),e.ok((0,Af._)`${s} === ${Ffn.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,$V.schemaRefOrVal)(o,r.properties,"properties");g=(0,QV.isOwnProperty)(t,E,y)}else u.length?g=(0,Af.or)(...u.map(E=>(0,Af._)`${y} === ${E}`)):g=Af.nil;return l.length&&(g=(0,Af.or)(g,...l.map(E=>(0,Af._)`${(0,QV.usePattern)(e,E)}.test(${y})`))),(0,Af.not)(g)}function p(y){t.code((0,Af._)`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,$V.alwaysValidSchema)(o,n)){let g=t.name("valid");c.removeAdditional==="failing"?(m(y,g,!1),t.if((0,Af.not)(g),()=>{e.reset(),p(y)})):(m(y,g),a||t.if((0,Af.not)(g),()=>t.break()))}}function m(y,g,E){let S={keyword:"additionalProperties",dataProp:y,dataPropType:$V.Type.Str};E===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,g)}}};noe.default=Hfn});var x6e=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var qfn=tk(),k6e=ya(),ioe=pn(),I6e=roe(),Bfn={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&&I6e.default.code(new qfn.KeywordCxt(s,I6e.default,"additionalProperties"));let o=(0,k6e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=ioe.mergeEvaluated.props(t,(0,ioe.toHash)(o),s.props));let a=o.filter(d=>!(0,ioe.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,k6e.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=Bfn});var C6e=w(ooe=>{"use strict";Object.defineProperty(ooe,"__esModule",{value:!0});var O6e=ya(),e2=xt(),N6e=pn(),P6e=pn(),Gfn={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,O6e.allSchemaProperties)(n),c=a.filter(m=>(0,N6e.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 e2.Name)&&(s.props=(0,P6e.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,N6e.checkStrictMode)(s,`property ${y} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){t.forIn("key",r,y=>{t.if((0,e2._)`${(0,O6e.usePattern)(e,m)}.test(${y})`,()=>{let g=c.includes(m);g||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:y,dataPropType:P6e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,e2._)`${d}[${y}]`,!0):!g&&!s.allErrors&&t.if((0,e2.not)(l),()=>t.break())})})}}};ooe.default=Gfn});var M6e=w(aoe=>{"use strict";Object.defineProperty(aoe,"__esModule",{value:!0});var zfn=pn(),Vfn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,zfn.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"}};aoe.default=Vfn});var D6e=w(coe=>{"use strict";Object.defineProperty(coe,"__esModule",{value:!0});var Wfn=ya(),Kfn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Wfn.validateUnion,error:{message:"must match a schema in anyOf"}};coe.default=Kfn});var L6e=w(uoe=>{"use strict";Object.defineProperty(uoe,"__esModule",{value:!0});var t2=xt(),Zfn=pn(),Yfn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,t2._)`{passingSchemas: ${e.passing}}`},Jfn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Yfn,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,Zfn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,t2._)`${c} && ${o}`).assign(o,!1).assign(a,(0,t2._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,t2.Name)})})}}};uoe.default=Jfn});var U6e=w(loe=>{"use strict";Object.defineProperty(loe,"__esModule",{value:!0});var Xfn=pn(),Qfn={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,Xfn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};loe.default=Qfn});var H6e=w(doe=>{"use strict";Object.defineProperty(doe,"__esModule",{value:!0});var n2=xt(),j6e=pn(),$fn={message:({params:e})=>(0,n2.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,n2._)`{failingKeyword: ${e.ifClause}}`},epn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:$fn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,j6e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=F6e(r,"then"),s=F6e(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,n2.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,n2._)`${l}`):e.setParams({ifClause:l})}}}};function F6e(e,t){let n=e.schema[t];return n!==void 0&&!(0,j6e.alwaysValidSchema)(e,n)}doe.default=epn});var q6e=w(foe=>{"use strict";Object.defineProperty(foe,"__esModule",{value:!0});var tpn=pn(),npn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,tpn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};foe.default=npn});var B6e=w(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});var rpn=Yse(),ipn=S6e(),spn=Jse(),opn=b6e(),apn=_6e(),cpn=A6e(),upn=w6e(),lpn=roe(),dpn=x6e(),fpn=C6e(),ppn=M6e(),hpn=D6e(),mpn=L6e(),gpn=U6e(),ypn=H6e(),Spn=q6e();function Epn(e=!1){let t=[ppn.default,hpn.default,mpn.default,gpn.default,ypn.default,Spn.default,upn.default,lpn.default,cpn.default,dpn.default,fpn.default];return e?t.push(ipn.default,opn.default):t.push(rpn.default,spn.default),t.push(apn.default),t}poe.default=Epn});var G6e=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var Cs=xt(),bpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},_pn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:bpn,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}]`),y=n.let("fType"),g=n.let("format");n.if((0,Cs._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>n.assign(y,(0,Cs._)`${m}.type || "string"`).assign(g,(0,Cs._)`${m}.validate`),()=>n.assign(y,(0,Cs._)`"string"`).assign(g,m)),e.fail$data((0,Cs.or)(E(),S()));function E(){return c.strictSchema===!1?Cs.nil:(0,Cs._)`${o} && !${g}`}function S(){let b=l.$async?(0,Cs._)`(${m}.async ? await ${g}(${r}) : ${g}(${r}))`:(0,Cs._)`${g}(${r})`,_=(0,Cs._)`(typeof ${g} == "function" ? ${b} : ${g}.test(${r}))`;return(0,Cs._)`${g} && ${g} !== true && ${y} === ${t} && !${_}`}}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(b());function E(){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,A=n.scopeValue("formats",{key:s,ref:_,code:T});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,Cs._)`${A}.validate`]:["string",_,A]}function b(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Cs._)`await ${g}(${r})`}return typeof y=="function"?(0,Cs._)`${g}(${r})`:(0,Cs._)`${g}.test(${r})`}}}};hoe.default=_pn});var z6e=w(moe=>{"use strict";Object.defineProperty(moe,"__esModule",{value:!0});var Tpn=G6e(),vpn=[Tpn.default];moe.default=vpn});var V6e=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 K6e=w(goe=>{"use strict";Object.defineProperty(goe,"__esModule",{value:!0});var Apn=e6e(),Rpn=h6e(),wpn=B6e(),kpn=z6e(),W6e=V6e(),Ipn=[Apn.default,Rpn.default,(0,wpn.default)(),kpn.default,W6e.metadataVocabulary,W6e.contentVocabulary];goe.default=Ipn});var yoe=w(r2=>{"use strict";Object.defineProperty(r2,"__esModule",{value:!0});r2.DiscrError=void 0;var Z6e;(function(e){e.Tag="tag",e.Mapping="mapping"})(Z6e||(r2.DiscrError=Z6e={}))});var J6e=w(Eoe=>{"use strict";Object.defineProperty(Eoe,"__esModule",{value:!0});var ak=xt(),Soe=yoe(),Y6e=F_(),xpn=Km(),Opn=pn(),Npn={message:({params:{discrError:e,tagName:t}})=>e===Soe.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}}`},Ppn={keyword:"discriminator",type:"object",schemaType:"object",error:Npn,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:Soe.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:Soe.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=g(i),y=!0;for(let b=0;b{Cpn.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 B_=w((yi,boe)=>{"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 Mpn=xse(),Dpn=K6e(),Lpn=J6e(),Q6e=X6e(),Upn=["/properties"],i2="http://json-schema.org/draft-07/schema",ck=class extends Mpn.default{_addVocabularies(){super._addVocabularies(),Dpn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(Lpn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(Q6e,Upn):Q6e;this.addMetaSchema(t,i2,!1),this.refs["http://json-schema.org/schema"]=i2}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(i2)?i2:void 0)}};yi.Ajv=ck;boe.exports=yi=ck;boe.exports.Ajv=ck;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=ck;var Fpn=tk();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return Fpn.KeywordCxt}});var uk=xt();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 jpn=_C();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return jpn.default}});var Hpn=Km();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return Hpn.default}})});var s2=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(n8e,Aoe),time:mh(Toe(!0),Roe),"date-time":mh($6e(!0),i8e),"iso-time":mh(Toe(),r8e),"iso-date-time":mh($6e(),s8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Wpn,"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:$pn,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:Kpn,int32:{type:"number",validate:Jpn},int64:{type:"number",validate:Xpn},float:{type:"number",validate:t8e},double:{type:"number",validate:t8e},password:!0,binary:!0};gh.fastFormats={...gh.fullFormats,date:mh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Aoe),time:mh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Roe),"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,i8e),"iso-time":mh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,r8e),"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,s8e),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 qpn(e){return e%4===0&&(e%100!==0||e%400===0)}var Bpn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Gpn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function n8e(e){let t=Bpn.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&&qpn(n)?29:Gpn[r])}function Aoe(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 Roe(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 r8e(e,t){if(!(e&&t))return;let n=_oe.exec(e),r=_oe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=Zpn}function Xpn(e){return Number.isInteger(e)}function t8e(){return!0}var Qpn=/[^\\]\\Z/;function $pn(e){if(Qpn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var o8e=w(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});lk.formatLimitDefinition=void 0;var ehn=B_(),Rf=xt(),US=Rf.operators,o2={formatMaximum:{okStr:"<=",ok:US.LTE,fail:US.GT},formatMinimum:{okStr:">=",ok:US.GTE,fail:US.LT},formatExclusiveMaximum:{okStr:"<",ok:US.LT,fail:US.GTE},formatExclusiveMinimum:{okStr:">",ok:US.GT,fail:US.LTE}},thn={message:({keyword:e,schemaCode:t})=>(0,Rf.str)`should be ${o2[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,Rf._)`{comparison: ${o2[e].okStr}, limit: ${t}}`};lk.formatLimitDefinition={keyword:Object.keys(o2),type:"string",schemaType:"string",$data:!0,error:thn,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 ehn.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,Rf._)`${f}[${c.schemaCode}]`);e.fail$data((0,Rf.or)((0,Rf._)`typeof ${p} != "object"`,(0,Rf._)`${p} instanceof RegExp`,(0,Rf._)`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,Rf._)`${o.code.formats}${(0,Rf.getProperty)(f)}`:void 0});e.fail$data(d(h))}function d(f){return(0,Rf._)`${f}.compare(${n}, ${r}) ${o2[i].fail} 0`}},dependencies:["format"]};var nhn=e=>(e.addKeyword(lk.formatLimitDefinition),e);lk.default=nhn});var a2=w((LC,u8e)=>{"use strict";Object.defineProperty(LC,"__esModule",{value:!0});var dk=s2(),rhn=o8e(),woe=xt(),a8e=new woe.Name("fullFormats"),ihn=new woe.Name("fastFormats"),koe=(e,t={keywords:!0})=>{if(Array.isArray(t))return c8e(e,t,dk.fullFormats,a8e),e;let[n,r]=t.mode==="fast"?[dk.fastFormats,ihn]:[dk.fullFormats,a8e],i=t.formats||dk.formatNames;return c8e(e,i,n,r),t.keywords&&(0,rhn.default)(e),e};koe.get=(e,t="full")=>{let r=(t==="fast"?dk.fastFormats:dk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function c8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,woe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}u8e.exports=LC=koe;Object.defineProperty(LC,"__esModule",{value:!0});LC.default=koe});function shn(){let e=new l8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,d8e.default)(e),e}var l8e,d8e,c2,f8e=v(()=>{l8e=Se(B_(),1),d8e=Se(a2(),1);c2=class{constructor(t){this._ajv=t??shn()}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 u2,p8e=v(()=>{O_();u2=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},oC,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 h8e(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 m8e(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 g8e=v(()=>{});var l2,y8e=v(()=>{OYe();O_();f8e();nV();p8e();g8e();l2=class extends RV{constructor(t,n){super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(sC.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(Vre,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(tie,async(r,i)=>{let s=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,a=sC.safeParse(o);return a.success&&this._loggingLevels.set(s,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new u2(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=xYe(this._capabilities,t)}setRequestHandler(t,n){let i=tV(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=wS(iC,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=wS(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=wS(SV,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){m8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&h8e(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:cYe.includes(n)?n:jre,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"},cV)}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},nie,n):this.request({method:"sampling/createMessage",params:t},oC,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},iie,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 ohn(e){return gYe.parse(JSON.parse(e))}function S8e(e){return JSON.stringify(e)+` -`}var d2,E8e=v(()=>{O_();d2=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),ohn(n)}clear(){this._buffer=void 0}}});import b8e from"node:process";var f2,_8e=v(()=>{E8e();f2=class{constructor(t=b8e.stdin,n=b8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new d2,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=S8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var v8e=w((eWr,Ioe)=>{"use strict";var ahn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,chn=/(\w*(\.\w*)*)\..*/;Ioe.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,T8e(r.stack)}};function T8e(e){let t=e.match(ahn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(chn)[1]:"anonymous"}Ioe.exports.extractPluginName=T8e});var R8e=w((tWr,A8e)=>{"use strict";A8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var UC=w((nWr,p2)=>{"use strict";var uhn=v8e(),lhn=R8e(),dhn=0;function xoe(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=uhn(e)+"-auto-"+dhn++),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=lhn(t.name);return!n&&!e[r]&&(e[r]=e),e}p2.exports=xoe;p2.exports.default=xoe;p2.exports.fastifyPlugin=xoe});var y2=w(yh=>{"use strict";var Ooe=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}},Noe=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}},FC=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}},h2=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 w8e(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var Poe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=w8e(this.collectionStart),this.records=r||new h2,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=w8e(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},m2=class extends FC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Poe(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()}},g2=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=g2;yh.FifoMap=Ooe;yh.FifoObject=g2;yh.HitStatisticsRecord=h2;yh.Lru=FC;yh.LruHitStatistics=m2;yh.LruMap=Noe;yh.LruObject=FC;yh.LruObjectHitStatistics=m2});var I8e=w((iWr,jC)=>{"use strict";var{FifoMap:fhn}=y2(),phn=/^[!#$%&'*+\-.^\w`|~]+$/u;function hhn(e){if(phn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function k8e(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 mhn=UC(),{addAccessControlRequestHeadersToVaryHeader:ghn,addOriginToVaryHeader:yhn}=I8e(),Doe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},Shn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Moe=["preSerialization","preParsing","onSend"];function N8e(e,t){Shn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function Ehn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")x8e(t,e,{hook:Doe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;x8e(s,e,o,n)}else{let s=S2(t);N8e(s.hook,n),Moe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){HC(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){HC(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 x8e(e,t,n,r){let i=n?.hook||Doe.hook;N8e(i,r),e.length===2?Moe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){O8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){O8e(e,t,o,a,c)}):Moe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>HC(t,S2(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=>HC(t,S2(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function O8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):HC(t,S2(o,!0),n,r,i)})}function S2(e,t){let n={...Doe,...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 HC(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&yhn(r),(typeof s.origin=="function"?Thn(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(bhn(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,_hn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function bhn(e,t,n,r){let i=vhn(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 _hn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){ghn(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 Thn(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 vhn(e,t){return typeof t=="string"?t:P8e(e,t)?e:!1}function P8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Ahn=/^(-?(?:\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?)?)?$/,b2=1e3,_2=b2*60,T2=_2*60,BC=T2*24,Uoe=BC*365.25;function Rhn(e){var t,n=e.toLowerCase().match(Ahn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*b2:n[4]!=null?t*_2:n[5]!=null?t*T2:n[6]!=null?t*BC:n[7]!=null?t*BC*7:n[8]!=null?t*Uoe:t}function qC(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function whn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:khn}=y2();function v2(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new khn(n)}v2.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)};v2.prototype.child=function(e){return new v2(e.continueExceeding,e.exponentialBackoff,e.cache)};D8e.exports=v2});var F8e=w((cWr,U8e)=>{"use strict";var Ihn=` + 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,38 +100,38 @@ Mongoose Error Code: ${t.code}`:""}`})}function nte(e,t,n,r=void 0){n&&(0,tP.saf end return {current, timeWindow} -`;function A2(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:Ihn})}A2.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]})})};A2.prototype.child=function(e){return new A2(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};U8e.exports=A2});var K8e=w((uWr,R2)=>{"use strict";var xhn=UC(),{parse:q8e,format:Ohn}=M8e(),Nhn=L8e(),Phn=F8e(),B8e=1e3,G8e=6e4,Chn="onRequest",Mhn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},Dhn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},joe=()=>{},Lhn=e=>e.ip,Uhn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function Hoe(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=Dhn):(n.enableDraftSpec=!1,n.labels=Mhn),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=B8e,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=G8e,n.hook=t.hook||Chn,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:joe,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:joe,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:joe,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:Lhn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=Uhn,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 Phn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new Nhn(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=>V8e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=j8e(r,n,i);return W8e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=z8e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),H8e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&H8e(r,n,i)})}function z8e(...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=G8e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=B8e),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=z8e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function H8e(e,t,n){let r=t.hook,i=W8e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function V8e(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 W8e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await V8e(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:Ohn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}R2.exports=xhn(Hoe,{fastify:"5.x",name:"@fastify/rate-limit"});R2.exports.default=Hoe;R2.exports.fastifyRateLimit=Hoe});var Ym=w((lWr,J8e)=>{"use strict";var Z8e=["nodebuffer","arraybuffer","fragments"],Y8e=typeof Blob<"u";Y8e&&Z8e.push("blob");J8e.exports={BINARY_TYPES:Z8e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:Y8e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var GC=w((dWr,w2)=>{"use strict";var{EMPTY_BUFFER:Fhn}=Ym(),qoe=Buffer[Symbol.species];function jhn(e,t){if(e.length===0)return Fhn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var $8e=Symbol("kDone"),Goe=Symbol("kRun"),zoe=class{constructor(t){this[$8e]=()=>{this.pending--,this[Goe]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[Goe]()}[Goe](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[$8e])}}};eJe.exports=zoe});var hk=w((pWr,sJe)=>{"use strict";var zC=Z("zlib"),nJe=GC(),qhn=tJe(),{kStatusCode:rJe}=Ym(),Bhn=Buffer[Symbol.species],Ghn=Buffer.from([0,0,255,255]),I2=Symbol("permessage-deflate"),Jm=Symbol("total-length"),fk=Symbol("callback"),FS=Symbol("buffers"),pk=Symbol("error"),k2,Voe=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,!k2){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;k2=new qhn(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){k2.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){k2.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"?zC.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=zC.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[I2]=this,this._inflate[Jm]=0,this._inflate[FS]=[],this._inflate.on("error",Vhn),this._inflate.on("data",iJe)}this._inflate[fk]=r,this._inflate.write(t),n&&this._inflate.write(Ghn),this._inflate.flush(()=>{let s=this._inflate[pk];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=nJe.concat(this._inflate[FS],this._inflate[Jm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Jm]=0,this._inflate[FS]=[],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"?zC.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=zC.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Jm]=0,this._deflate[FS]=[],this._deflate.on("data",zhn)}this._deflate[fk]=r,this._deflate.write(t),this._deflate.flush(zC.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=nJe.concat(this._deflate[FS],this._deflate[Jm]);n&&(s=new Bhn(s.buffer,s.byteOffset,s.length-4)),this._deflate[fk]=null,this._deflate[Jm]=0,this._deflate[FS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};sJe.exports=Voe;function zhn(e){this[FS].push(e),this[Jm]+=e.length}function iJe(e){if(this[Jm]+=e.length,this[I2]._maxPayload<1||this[Jm]<=this[I2]._maxPayload){this[FS].push(e);return}this[pk]=new RangeError("Max payload size exceeded"),this[pk].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[pk][rJe]=1009,this.removeListener("data",iJe),this.reset()}function Vhn(e){if(this[I2]._inflate=null,this[pk]){this[fk](this[pk]);return}e[rJe]=1007,this[fk](e)}});var mk=w((hWr,x2)=>{"use strict";var{isUtf8:oJe}=Z("buffer"),{hasBlob:Whn}=Ym(),Khn=[0,0,0,0,0,0,0,0,0,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 Zhn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function Woe(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 Yhn(e){return Whn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}x2.exports={isBlob:Yhn,isValidStatusCode:Zhn,isValidUTF8:Woe,tokenChars:Khn};if(oJe)x2.exports.isValidUTF8=function(e){return e.length<24?Woe(e):oJe(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=Z("utf-8-validate");x2.exports.isValidUTF8=function(t){return t.length<32?Woe(t):e(t)}}catch{}});var Xoe=w((mWr,pJe)=>{"use strict";var{Writable:Jhn}=Z("stream"),aJe=hk(),{BINARY_TYPES:Xhn,EMPTY_BUFFER:cJe,kStatusCode:Qhn,kWebSocket:$hn}=Ym(),{concat:Koe,toArrayBuffer:emn,unmask:tmn}=GC(),{isValidStatusCode:nmn,isValidUTF8:uJe}=mk(),O2=Buffer[Symbol.species],Sd=0,lJe=1,dJe=2,fJe=3,Zoe=4,Yoe=5,N2=6,Joe=class extends Jhn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||Xhn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[$hn]=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=Sd}_write(t,n,r){if(this._opcode===8&&this._state==Sd)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 O2(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 Sd:this.getInfo(t);break;case lJe:this.getPayloadLength16(t);break;case dJe:this.getPayloadLength64(t);break;case fJe:this.getMask();break;case Zoe:this.getData(t);break;case Yoe:case N2: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[aJe.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=lJe:this._payloadLength===127?this._state=dJe: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=fJe:this._state=Zoe}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Zoe}getData(t){let n=cJe;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=Yoe,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[aJe.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===Sd&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=Sd;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=Koe(r,n):this._binaryType==="arraybuffer"?i=emn(Koe(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=Sd):(this._state=N2,setImmediate(()=>{this.emit("message",i,!0),this._state=Sd,this.startLoop(t)}))}else{let i=Koe(r,n);if(!this._skipUTF8Validation&&!uJe(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===Yoe||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=Sd):(this._state=N2,setImmediate(()=>{this.emit("message",i,!1),this._state=Sd,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,cJe),this.end();else{let r=t.readUInt16BE(0);if(!nmn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new O2(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!uJe(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=Sd;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=Sd):(this._state=N2,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=Sd,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[Qhn]=i,o}};pJe.exports=Joe});var eae=w((yWr,gJe)=>{"use strict";var{Duplex:gWr}=Z("stream"),{randomFillSync:rmn}=Z("crypto"),hJe=hk(),{EMPTY_BUFFER:imn,kWebSocket:smn,NOOP:omn}=Ym(),{isBlob:gk,isValidStatusCode:amn}=mk(),{mask:mJe,toBuffer:G_}=GC(),Ed=Symbol("kByteLength"),cmn=Buffer.alloc(4),P2=8*1024,z_,yk=P2,wf=0,umn=1,lmn=2,Qoe=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=wf,this.onerror=omn,this[smn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||cmn,n.generateMask?n.generateMask(r):(yk===P2&&(z_===void 0&&(z_=Buffer.alloc(P2)),rmn(z_,0,P2),yk=0),r[0]=z_[yk++],r[1]=z_[yk++],r[2]=z_[yk++],r[3]=z_[yk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[Ed]!==void 0?a=n[Ed]:(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?(mJe(t,r,u,s,a),[u]):(mJe(t,r,t,0,a),[u,t])):[u,t]}close(t,n,r,i){let s;if(t===void 0)s=imn;else{if(typeof t!="number"||!amn(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={[Ed]:s.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==wf?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=G_(t),i=t.length,s=G_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[Ed]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};gk(t)?this._state!==wf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==wf?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=G_(t),i=t.length,s=G_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[Ed]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};gk(t)?this._state!==wf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==wf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}send(t,n,r){let i=this._extensions[hJe.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=G_(t),a=t.length,c=G_.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={[Ed]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};gk(t)?this._state!==wf?this.enqueue([this.getBlobData,t,this._compress,u,r]):this.getBlobData(t,this._compress,u,r):this._state!==wf?this.enqueue([this.dispatch,t,this._compress,u,r]):this.dispatch(t,this._compress,u,r)}getBlobData(t,n,r,i){this._bufferedBytes+=r[Ed],this._state=lmn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick($oe,this,a,i);return}this._bufferedBytes-=r[Ed];let o=G_(s);n?this.dispatch(o,n,r,i):(this._state=wf,this.sendFrame(e.frame(o,r),i),this.dequeue())}).catch(s=>{process.nextTick(dmn,this,s,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let s=this._extensions[hJe.extensionName];this._bufferedBytes+=r[Ed],this._state=umn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");$oe(this,c,i);return}this._bufferedBytes-=r[Ed],this._state=wf,r.readOnly=!1,this.sendFrame(e.frame(a,r),i),this.dequeue()})}dequeue(){for(;this._state===wf&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][Ed],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][Ed],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)}};gJe.exports=Qoe;function $oe(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:VC,kListener:tae}=Ym(),yJe=Symbol("kCode"),SJe=Symbol("kData"),EJe=Symbol("kError"),bJe=Symbol("kMessage"),_Je=Symbol("kReason"),Sk=Symbol("kTarget"),TJe=Symbol("kType"),vJe=Symbol("kWasClean"),Xm=class{constructor(t){this[Sk]=null,this[TJe]=t}get target(){return this[Sk]}get type(){return this[TJe]}};Object.defineProperty(Xm.prototype,"target",{enumerable:!0});Object.defineProperty(Xm.prototype,"type",{enumerable:!0});var V_=class extends Xm{constructor(t,n={}){super(t),this[yJe]=n.code===void 0?0:n.code,this[_Je]=n.reason===void 0?"":n.reason,this[vJe]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[yJe]}get reason(){return this[_Je]}get wasClean(){return this[vJe]}};Object.defineProperty(V_.prototype,"code",{enumerable:!0});Object.defineProperty(V_.prototype,"reason",{enumerable:!0});Object.defineProperty(V_.prototype,"wasClean",{enumerable:!0});var Ek=class extends Xm{constructor(t,n={}){super(t),this[EJe]=n.error===void 0?null:n.error,this[bJe]=n.message===void 0?"":n.message}get error(){return this[EJe]}get message(){return this[bJe]}};Object.defineProperty(Ek.prototype,"error",{enumerable:!0});Object.defineProperty(Ek.prototype,"message",{enumerable:!0});var WC=class extends Xm{constructor(t,n={}){super(t),this[SJe]=n.data===void 0?null:n.data}get data(){return this[SJe]}};Object.defineProperty(WC.prototype,"data",{enumerable:!0});var fmn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[VC]&&i[tae]===t&&!i[VC])return;let r;if(e==="message")r=function(s,o){let a=new WC("message",{data:o?s:s.toString()});a[Sk]=this,C2(t,this,a)};else if(e==="close")r=function(s,o){let a=new V_("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Sk]=this,C2(t,this,a)};else if(e==="error")r=function(s){let o=new Ek("error",{error:s,message:s.message});o[Sk]=this,C2(t,this,o)};else if(e==="open")r=function(){let s=new Xm("open");s[Sk]=this,C2(t,this,s)};else return;r[VC]=!!n[VC],r[tae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[tae]===t&&!n[VC]){this.removeListener(e,n);break}}};AJe.exports={CloseEvent:V_,ErrorEvent:Ek,Event:Xm,EventTarget:fmn,MessageEvent:WC};function C2(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var M2=w((EWr,wJe)=>{"use strict";var{tokenChars:KC}=mk();function Sh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function pmn(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(", ")}wJe.exports={format:hmn,parse:pmn}});var F2=w((TWr,FJe)=>{"use strict";var mmn=Z("events"),gmn=Z("https"),ymn=Z("http"),xJe=Z("net"),Smn=Z("tls"),{randomBytes:Emn,createHash:bmn}=Z("crypto"),{Duplex:bWr,Readable:_Wr}=Z("stream"),{URL:nae}=Z("url"),jS=hk(),_mn=Xoe(),Tmn=eae(),{isBlob:vmn}=mk(),{BINARY_TYPES:kJe,CLOSE_TIMEOUT:Amn,EMPTY_BUFFER:D2,GUID:Rmn,kForOnEventAttribute:rae,kListener:wmn,kStatusCode:kmn,kWebSocket:Wo,NOOP:OJe}=Ym(),{EventTarget:{addEventListener:Imn,removeEventListener:xmn}}=RJe(),{format:Omn,parse:Nmn}=M2(),{toBuffer:Pmn}=GC(),NJe=Symbol("kAborted"),iae=[8,13],Qm=["CONNECTING","OPEN","CLOSING","CLOSED"],Cmn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends mmn{constructor(t,n,r){super(),this._binaryType=kJe[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=D2,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]),PJe(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){kJe.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 _mn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Tmn(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",Lmn),i.on("drain",Umn),i.on("error",Fmn),i.on("message",jmn),i.on("ping",Hmn),i.on("pong",qmn),s.onerror=Bmn,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",DJe),t.on("data",U2),t.on("end",LJe),t.on("error",UJe),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[jS.extensionName]&&this._extensions[jS.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){gl(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())}),MJe(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||D2,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||D2,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[jS.extensionName]||(i.compress=!1),this._sender.send(t||D2,i,r)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){gl(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[rae])return t[wmn];return null},set(t){for(let n of this.listeners(e))if(n[rae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[rae]:!0})}})});Fi.prototype.addEventListener=Imn;Fi.prototype.removeEventListener=xmn;FJe.exports=Fi;function PJe(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Amn,protocolVersion:iae[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,!iae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${iae.join(", ")})`);let s;if(t instanceof nae)s=t;else try{s=new nae(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;L2(e,m);return}let u=o?443:80,l=Emn(16).toString("base64"),d=o?gmn.request:ymn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?Dmn:Mmn),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 jS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=Omn({[jS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!Cmn.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",()=>{gl(e,h,"Opening handshake has timed out")}),h.on("error",m=>{h===null||h[NJe]||(h=e._req=null,L2(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){gl(e,h,"Maximum redirects exceeded");return}h.abort();let E;try{E=new nae(y,t)}catch{let b=new SyntaxError(`Invalid URL: ${y}`);L2(e,b);return}PJe(e,E,n,r)}else e.emit("unexpected-response",h,m)||gl(e,h,`Unexpected server response: ${m.statusCode}`)}),h.on("upgrade",(m,y,g)=>{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"){gl(e,y,"Invalid Upgrade header");return}let S=bmn("sha1").update(l+Rmn).digest("base64");if(m.headers["sec-websocket-accept"]!==S){gl(e,y,"Invalid Sec-WebSocket-Accept header");return}let b=m.headers["sec-websocket-protocol"],_;if(b!==void 0?f.size?f.has(b)||(_="Server sent an invalid subprotocol"):_="Server sent a subprotocol but none was requested":f.size&&(_="Server sent no subprotocol"),_){gl(e,y,_);return}b&&(e._protocol=b);let T=m.headers["sec-websocket-extensions"];if(T!==void 0){if(!p){gl(e,y,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let A;try{A=Nmn(T)}catch{gl(e,y,"Invalid Sec-WebSocket-Extensions header");return}let R=Object.keys(A);if(R.length!==1||R[0]!==jS.extensionName){gl(e,y,"Server indicated an extension that was not requested");return}try{p.accept(A[jS.extensionName])}catch{gl(e,y,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[jS.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 L2(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function Mmn(e){return e.path=e.socketPath,xJe.connect(e)}function Dmn(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=xJe.isIP(e.host)?"":e.host),Smn.connect(e)}function gl(e,t,n){e._readyState=Fi.CLOSING;let r=new Error(n);Error.captureStackTrace(r,gl),t.setHeader?(t[NJe]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(L2,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=vmn(t)?t.size:Pmn(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 Lmn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",U2),process.nextTick(CJe,n._socket),e===1005?n.close():n.close(e,t))}function Umn(){let e=this[Wo];e.isPaused||e._socket.resume()}function Fmn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",U2),process.nextTick(CJe,t._socket),t.close(e[kmn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function IJe(){this[Wo].emitClose()}function jmn(e,t){this[Wo].emit("message",e,t)}function Hmn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,OJe),t.emit("ping",e)}function qmn(e){this[Wo].emit("pong",e)}function CJe(e){e.resume()}function Bmn(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,MJe(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function MJe(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function DJe(){let e=this[Wo];if(this.removeListener("close",DJe),this.removeListener("data",U2),this.removeListener("end",LJe),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",IJe),e._receiver.on("finish",IJe))}function U2(e){this[Wo]._receiver.write(e)||this.pause()}function LJe(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function UJe(){let e=this[Wo];this.removeListener("error",UJe),this.on("error",OJe),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var BJe=w((AWr,qJe)=>{"use strict";var vWr=F2(),{Duplex:Gmn}=Z("stream");function jJe(e){e.emit("close")}function zmn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function HJe(e){this.removeListener("error",HJe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function Vmn(e,t){let n=!0,r=new Gmn({...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(jJe,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(jJe,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",zmn),r.on("error",HJe),r}qJe.exports=Vmn});var oae=w((RWr,GJe)=>{"use strict";var{tokenChars:Wmn}=mk();function Kmn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var Zmn=Z("events"),j2=Z("http"),{Duplex:wWr}=Z("stream"),{createHash:Ymn}=Z("crypto"),zJe=M2(),W_=hk(),Jmn=oae(),Xmn=F2(),{CLOSE_TIMEOUT:Qmn,GUID:$mn,kWebSocket:egn}=Ym(),tgn=/^[+/0-9A-Za-z]{22}==$/,VJe=0,WJe=1,ZJe=2,aae=class extends Zmn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Qmn,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Xmn,...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=j2.createServer((r,i)=>{let s=j2.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=ngn(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=VJe}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===ZJe){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!==WJe)if(this._state=WJe,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",KJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){K_(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){K_(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!tgn.test(s)){K_(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){K_(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){YC(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=Jmn.parse(c)}catch{K_(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 W_({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=zJe.parse(l);p[W_.extensionName]&&(f.accept(p[W_.extensionName]),d[W_.extensionName]=f)}catch{K_(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 YC(n,h||401,m,y);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return YC(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[egn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>VJe)return YC(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Ymn("sha1").update(n+$mn).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[W_.extensionName]){let d=t[W_.extensionName].params,f=zJe.format({[W_.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",KJe),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)}};YJe.exports=aae;function ngn(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=ZJe,e.emit("close")}function KJe(){this.destroy()}function YC(e,t,n,r){n=n||j2.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} ${j2.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 K_(e,t,n,r,i,s){if(e.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,K_),e.emit("wsClientError",o,n,t)}else YC(n,r,i,s)}});var $Je=w((IWr,QJe)=>{"use strict";var rgn=BJe(),ign=M2(),sgn=hk(),ogn=Xoe(),agn=eae(),cgn=oae(),kf=F2(),XJe=JJe();kf.createWebSocketStream=rgn;kf.extension=ign;kf.PerMessageDeflate=sgn;kf.Receiver=ogn;kf.Sender=agn;kf.Server=XJe;kf.subprotocol=cgn;kf.WebSocket=kf;kf.WebSocketServer=XJe;QJe.exports=kf});var cae=w((xWr,eXe)=>{eXe.exports=Z("stream")});var oXe=w((OWr,sXe)=>{"use strict";function tXe(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 nXe(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 H2.alloc(0);for(var r=H2.allocUnsafe(n>>>0),i=this.head,s=0;i;)ggn(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=H2.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:mgn,value:function(n,r){return uae(this,nXe(nXe({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var dae=w((NWr,cXe)=>{"use strict";function ygn(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(lae,this,e)):process.nextTick(lae,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(q2,n):(n._writableState.errorEmitted=!0,process.nextTick(aXe,n,s)):process.nextTick(aXe,n,s):t?(process.nextTick(q2,n),t(s)):process.nextTick(q2,n)}),this)}function aXe(e,t){lae(e,t),q2(e)}function q2(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function Sgn(){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 lae(e,t){e.emit("error",t)}function Egn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}cXe.exports={destroy:ygn,undestroy:Sgn,errorOrDestroy:Egn}});var HS=w((PWr,dXe)=>{"use strict";var lXe={};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,lXe[e]=i}function uXe(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 bgn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function _gn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Tgn(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"&&bgn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(_gn(e," argument"))i=`The ${e} ${r} ${uXe(t,"type")}`;else{let s=Tgn(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${uXe(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");dXe.exports.codes=lXe});var fae=w((CWr,fXe)=>{"use strict";var vgn=HS().codes.ERR_INVALID_OPT_VALUE;function Agn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function Rgn(e,t,n,r){var i=Agn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new vgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}fXe.exports={getHighWaterMark:Rgn}});var pXe=w((MWr,pae)=>{typeof Object.create=="function"?pae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:pae.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 Z_=w((DWr,mae)=>{try{if(hae=Z("util"),typeof hae.inherits!="function")throw"";mae.exports=hae.inherits}catch{mae.exports=pXe()}var hae});var mXe=w((LWr,hXe)=>{hXe.exports=Z("util").deprecate});var Sae=w((UWr,_Xe)=>{"use strict";_Xe.exports=gs;function yXe(e){var t=this;this.next=null,this.entry=null,this.finish=function(){Qgn(t,e)}}var bk;gs.WritableState=XC;var wgn={deprecate:mXe()},SXe=cae(),G2=Z("buffer").Buffer,kgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Ign(e){return G2.from(e)}function xgn(e){return G2.isBuffer(e)||e instanceof kgn}var yae=dae(),Ogn=fae(),Ngn=Ogn.getHighWaterMark,qS=HS().codes,Pgn=qS.ERR_INVALID_ARG_TYPE,Cgn=qS.ERR_METHOD_NOT_IMPLEMENTED,Mgn=qS.ERR_MULTIPLE_CALLBACK,Dgn=qS.ERR_STREAM_CANNOT_PIPE,Lgn=qS.ERR_STREAM_DESTROYED,Ugn=qS.ERR_STREAM_NULL_VALUES,Fgn=qS.ERR_STREAM_WRITE_AFTER_END,jgn=qS.ERR_UNKNOWN_ENCODING,_k=yae.errorOrDestroy;Z_()(gs,SXe);function Hgn(){}function XC(e,t,n){bk=bk||Y_(),e=e||{},typeof n!="boolean"&&(n=t instanceof bk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=Ngn(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){Kgn(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 yXe(this)}XC.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(XC.prototype,"buffer",{get:wgn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var B2;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(B2=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return B2.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof XC}})):B2=function(t){return t instanceof this};function gs(e){bk=bk||Y_();var t=this instanceof bk;if(!t&&!B2.call(gs,this))return new gs(e);this._writableState=new XC(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)),SXe.call(this)}gs.prototype.pipe=function(){_k(this,new Dgn)};function qgn(e,t){var n=new Fgn;_k(e,n),process.nextTick(t,n)}function Bgn(e,t,n,r){var i;return n===null?i=new Ugn:typeof n!="string"&&!t.objectMode&&(i=new Pgn("chunk",["string","Buffer"],n)),i?(_k(e,i),process.nextTick(r,i),!1):!0}gs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&xgn(e);return s&&!G2.isBuffer(e)&&(e=Ign(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=Hgn),r.ending?qgn(this,n):(s||Bgn(this,r,e,n))&&(r.pendingcb++,i=zgn(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&&EXe(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 jgn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Ggn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=G2.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function zgn(e,t,n,r,i,s){if(!n){var o=Ggn(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 $gn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};vXe.exports=Eh;var TXe=_ae(),bae=Sae();Z_()(Eh,TXe);for(Eae=$gn(bae.prototype),z2=0;z2{var W2=Z("buffer"),bh=W2.Buffer;function AXe(e,t){for(var n in e)t[n]=e[n]}bh.from&&bh.alloc&&bh.allocUnsafe&&bh.allocUnsafeSlow?RXe.exports=W2:(AXe(W2,Tae),Tae.Buffer=J_);function J_(e,t,n){return bh(e,t,n)}J_.prototype=Object.create(bh.prototype);AXe(bh,J_);J_.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return bh(e,t,n)};J_.alloc=function(e,t,n){if(typeof e!="number")throw new TypeError("Argument must be a number");var r=bh(e);return t!==void 0?typeof n=="string"?r.fill(t,n):r.fill(t):r.fill(0),r};J_.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return bh(e)};J_.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return W2.SlowBuffer(e)}});var Rae=w(IXe=>{"use strict";var Aae=wXe().Buffer,kXe=Aae.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 nyn(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 ryn(e){var t=nyn(e);if(typeof t!="string"&&(Aae.isEncoding===kXe||!kXe(e)))throw new Error("Unknown encoding: "+e);return t||e}IXe.StringDecoder=QC;function QC(e){this.encoding=ryn(e);var t;switch(this.encoding){case"utf16le":this.text=uyn,this.end=lyn,t=4;break;case"utf8":this.fillLast=oyn,t=4;break;case"base64":this.text=dyn,this.end=fyn,t=3;break;default:this.write=pyn,this.end=hyn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Aae.allocUnsafe(t)}QC.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 iyn(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 syn(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 oyn(e){var t=this.lastTotal-this.lastNeed,n=syn(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 ayn(e,t){var n=iyn(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 cyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function uyn(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 lyn(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 dyn(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 fyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function pyn(e){return e.toString(this.encoding)}function hyn(e){return e&&e.length?this.write(e):""}});var K2=w((HWr,NXe)=>{"use strict";var xXe=HS().codes.ERR_STREAM_PREMATURE_CLOSE;function myn(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 Z2;function BS(e,t,n){return t=Syn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Syn(e){var t=Eyn(e,"string");return typeof t=="symbol"?t:String(t)}function Eyn(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 byn=K2(),GS=Symbol("lastResolve"),X_=Symbol("lastReject"),$C=Symbol("error"),Y2=Symbol("ended"),Q_=Symbol("lastPromise"),wae=Symbol("handlePromise"),$_=Symbol("stream");function zS(e,t){return{value:e,done:t}}function _yn(e){var t=e[GS];if(t!==null){var n=e[$_].read();n!==null&&(e[Q_]=null,e[GS]=null,e[X_]=null,t(zS(n,!1)))}}function Tyn(e){process.nextTick(_yn,e)}function vyn(e,t){return function(n,r){e.then(function(){if(t[Y2]){n(zS(void 0,!0));return}t[wae](n,r)},r)}}var Ayn=Object.getPrototypeOf(function(){}),Ryn=Object.setPrototypeOf((Z2={get stream(){return this[$_]},next:function(){var t=this,n=this[$C];if(n!==null)return Promise.reject(n);if(this[Y2])return Promise.resolve(zS(void 0,!0));if(this[$_].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[$C]?a(t[$C]):o(zS(void 0,!0))})});var r=this[Q_],i;if(r)i=new Promise(vyn(r,this));else{var s=this[$_].read();if(s!==null)return Promise.resolve(zS(s,!1));i=new Promise(this[wae])}return this[Q_]=i,i}},BS(Z2,Symbol.asyncIterator,function(){return this}),BS(Z2,"return",function(){var t=this;return new Promise(function(n,r){t[$_].destroy(null,function(i){if(i){r(i);return}n(zS(void 0,!0))})})}),Z2),Ayn),wyn=function(t){var n,r=Object.create(Ryn,(n={},BS(n,$_,{value:t,writable:!0}),BS(n,GS,{value:null,writable:!0}),BS(n,X_,{value:null,writable:!0}),BS(n,$C,{value:null,writable:!0}),BS(n,Y2,{value:t._readableState.endEmitted,writable:!0}),BS(n,wae,{value:function(s,o){var a=r[$_].read();a?(r[Q_]=null,r[GS]=null,r[X_]=null,s(zS(a,!1))):(r[GS]=s,r[X_]=o)},writable:!0}),n));return r[Q_]=null,byn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[X_];s!==null&&(r[Q_]=null,r[GS]=null,r[X_]=null,s(i)),r[$C]=i;return}var o=r[GS];o!==null&&(r[Q_]=null,r[GS]=null,r[X_]=null,o(zS(void 0,!0))),r[Y2]=!0}),t.on("readable",Tyn.bind(null,r)),r};PXe.exports=wyn});var UXe=w((BWr,LXe)=>{"use strict";function MXe(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 kyn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){MXe(s,r,i,o,a,"next",c)}function a(c){MXe(s,r,i,o,a,"throw",c)}o(void 0)})}}function DXe(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 Iyn(e){for(var t=1;t{"use strict";KXe.exports=nr;var Tk;nr.ReadableState=qXe;var GWr=Z("events").EventEmitter,HXe=function(t,n){return t.listeners(n).length},tM=cae(),J2=Z("buffer").Buffer,Myn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Dyn(e){return J2.from(e)}function Lyn(e){return J2.isBuffer(e)||e instanceof Myn}var kae=Z("util"),Rn;kae&&kae.debuglog?Rn=kae.debuglog("stream"):Rn=function(){};var Uyn=oXe(),Mae=dae(),Fyn=fae(),jyn=Fyn.getHighWaterMark,X2=HS().codes,Hyn=X2.ERR_INVALID_ARG_TYPE,qyn=X2.ERR_STREAM_PUSH_AFTER_EOF,Byn=X2.ERR_METHOD_NOT_IMPLEMENTED,Gyn=X2.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,vk,Iae,xae;Z_()(nr,tM);var eM=Mae.errorOrDestroy,Oae=["error","close","destroy","pause","resume"];function zyn(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 qXe(e,t,n){Tk=Tk||Y_(),e=e||{},typeof n!="boolean"&&(n=t instanceof Tk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=jyn(this,e,"readableHighWaterMark",n),this.buffer=new Uyn,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=Rae().StringDecoder),this.decoder=new vk(e.encoding),this.encoding=e.encoding)}function nr(e){if(Tk=Tk||Y_(),!(this instanceof nr))return new nr(e);var t=this instanceof Tk;this._readableState=new qXe(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),tM.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=Mae.destroy;nr.prototype._undestroy=Mae.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=J2.from(e,t),t=""),r=!0),BXe(this,e,t,!1,r)};nr.prototype.unshift=function(e){return BXe(this,e,null,!0,!1)};function BXe(e,t,n,r,i){Rn("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,Kyn(e,s);else{var o;if(i||(o=Vyn(s,t)),o)eM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==J2.prototype&&(t=Dyn(t)),r)s.endEmitted?eM(e,new Gyn):Nae(e,s,t,!0);else if(s.ended)eM(e,new qyn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?Nae(e,s,t,!1):Cae(e,s)):Nae(e,s,t,!1)}else r||(s.reading=!1,Cae(e,s))}return!s.ended&&(s.length=FXe?e=FXe:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function jXe(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=Wyn(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?Pae(this):Q2(this),null;if(e=jXe(e,t),e===0&&t.ended)return t.length===0&&Pae(this),null;var r=t.needReadable;Rn("need readable",r),(t.length===0||t.length-e0?i=VXe(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&&Pae(this)),i!==null&&this.emit("data",i),i};function Kyn(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?Q2(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,GXe(e)))}}function Q2(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(GXe,e))}function GXe(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,Dae(e)}function Cae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(Zyn,e,t))}function Zyn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&WXe(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),HXe(e,"error")===0&&eM(e,y)}zyn(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 Yyn(e){return function(){var n=e._readableState;Rn("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&HXe(e,"data")&&(n.flowing=!0,Dae(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?Q2(this):r.reading||process.nextTick(Jyn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=tM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(zXe,this),n};nr.prototype.removeAllListeners=function(e){var t=tM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(zXe,this),t};function zXe(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 Jyn(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,Xyn(this,e)),e.paused=!1,this};function Xyn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(Qyn,e,t))}function Qyn(e,t){Rn("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Dae(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 Dae(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 Pae(e){var t=e._readableState;Rn("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick($yn,t,e))}function $yn(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 xae===void 0&&(xae=UXe()),xae(nr,e,t)});function WXe(e,t){for(var n=0,r=e.length;n{"use strict";YXe.exports=$m;var $2=HS().codes,eSn=$2.ERR_METHOD_NOT_IMPLEMENTED,tSn=$2.ERR_MULTIPLE_CALLBACK,nSn=$2.ERR_TRANSFORM_ALREADY_TRANSFORMING,rSn=$2.ERR_TRANSFORM_WITH_LENGTH_0,eW=Y_();Z_()($m,eW);function iSn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new tSn);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";XXe.exports=nM;var JXe=Lae();Z_()(nM,JXe);function nM(e){if(!(this instanceof nM))return new nM(e);JXe.call(this,e)}nM.prototype._transform=function(e,t,n){n(null,e)}});var r7e=w((KWr,n7e)=>{"use strict";var Uae;function oSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var t7e=HS().codes,aSn=t7e.ERR_MISSING_ARGS,cSn=t7e.ERR_STREAM_DESTROYED;function $Xe(e){if(e)throw e}function uSn(e){return e.setHeader&&typeof e.abort=="function"}function lSn(e,t,n,r){r=oSn(r);var i=!1;e.on("close",function(){i=!0}),Uae===void 0&&(Uae=K2()),Uae(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,uSn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new cSn("pipe"))}}}function e7e(e){e()}function dSn(e,t){return e.pipe(t)}function fSn(e){return!e.length||typeof e[e.length-1]!="function"?$Xe:e.pop()}function pSn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return lSn(o,c,u,function(l){i||(i=l),l&&s.forEach(e7e),!c&&(s.forEach(e7e),r(i))})});return t.reduce(dSn)}n7e.exports=pSn});var i7e=w((_d,iM)=>{var rM=Z("stream");process.env.READABLE_STREAM==="disable"&&rM?(iM.exports=rM.Readable,Object.assign(iM.exports,rM),iM.exports.Stream=rM):(_d=iM.exports=_ae(),_d.Stream=rM||_d,_d.Readable=_d,_d.Writable=Sae(),_d.Duplex=Y_(),_d.Transform=Lae(),_d.PassThrough=QXe(),_d.finished=K2(),_d.pipeline=r7e())});var a7e=w((ZWr,o7e)=>{o7e.exports=s7e;function s7e(e,t){if(e&&t)return s7e(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=a7e();Fae.exports=c7e(tW);Fae.exports.strict=c7e(u7e);tW.proto=tW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return tW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return u7e(this)},configurable:!0})});function tW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function u7e(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 p7e=w((JWr,f7e)=>{var hSn=l7e(),mSn=function(){},gSn=global.Bare?queueMicrotask:process.nextTick.bind(process),ySn=function(e){return e.setHeader&&typeof e.abort=="function"},SSn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},d7e=function(e,t,n){if(typeof t=="function")return d7e(e,null,t);t||(t={}),n=hSn(n||mSn);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(){gSn(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 ySn(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)),SSn(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)}};f7e.exports=d7e});var m7e=w((XWr,h7e)=>{h7e.exports=ESn;function ESn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(bSn(t)):null}function bSn(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 b7e=w((QWr,E7e)=>{var nW=i7e(),g7e=p7e(),_Sn=Z_(),TSn=m7e(),y7e=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),jae=function(e,t){e._corked?e.once("uncork",t):t()},vSn=function(e,t){e._autoDestroy&&e.destroy(t)},S7e=function(e,t){return function(n){n?vSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},ASn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},RSn=function(){},wSn=function(e){return new nW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},ba=function(e,t,n){if(!(this instanceof ba))return new ba(e,t,n);nW.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)};_Sn(ba,nW.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=g7e(e,{writable:!0,readable:!1},S7e(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=g7e(e,{writable:!1,readable:!0},S7e(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:wSn(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=TSn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};ba.prototype.destroy=function(e,t){if(t||(t=RSn),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 jae(this,this._write.bind(this,e,t,n));if(e===y7e)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"),jae(this,function(){ASn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),jae(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(y7e),nW.Writable.prototype.end.call(this,n))};E7e.exports=ba});var A7e=w(($Wr,iW)=>{"use strict";var{ServerResponse:kSn}=Z("node:http"),{PassThrough:_7e}=Z("node:stream"),{randomBytes:ISn}=Z("node:crypto"),xSn=UC(),T7e=$Je(),v7e=b7e(),eT=Symbol("ws-socket"),rW=Symbol("ws-head"),OSn=/HTTP\/1.1 (\d+)/u;function Hae(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 T7e.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},y={}){let g=new _7e,E=new _7e,S=new v7e(g,E),b=new v7e(E,g),_=new T7e(null,void 0,{isServer:!1}),T=Buffer.from([]),A,R,x=new Promise((P,C)=>{A=P,R=C});typeof y.onInit=="function"&&y.onInit(_),_.on("open",()=>{typeof y.onOpen=="function"&&y.onOpen(_),b.removeListener("data",k),A(_)});let k=P=>{if(P.toString().includes("HTTP/1.1 101 Switching Protocols"))_._isServer=!1,_.setSocket(b,T,{maxPayload:0});else{b.removeListener("data",k);let C=Number(OSn.exec(P.toString())[1]);R(new Error("Unexpected server response: "+C))}};b.on("data",k);let N={...m,method:"GET",headers:{...m.headers,connection:"upgrade",upgrade:"websocket","sec-websocket-version":13,"sec-websocket-key":ISn(16).toString("base64")},httpVersion:"1.1",url:h,[eT]:S,[rW]:T};return o.emit("upgrade",N,N[eT],N[rW]),x}e.decorate("injectWS",c);function u(h,m,y){h[eT]=m,h[rW]=y;let g=new kSn(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[eT],h[rW],y=>{a.emit("connection",y,h),y.on("error",g=>{e.log.error(g)}),m(y)})};e.addHook("onRequest",(h,m,y)=>{h.raw[eT]?h.ws=!0:h.ws=!1,y()}),e.addHook("onResponse",(h,m,y)=>{h.ws&&h.raw[eT].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[eT])S.hijack(),l(E.raw,b=>{let _;try{m?_=y.call(this,b,E):_=f.call(this,b,E)}catch(T){return r.call(this,T,b,E,S)}_&&typeof _.catch=="function"&&_.catch(T=>r.call(this,T,b,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()}iW.exports=xSn(Hae,{fastify:"5.x",name:"@fastify/websocket"});iW.exports.default=Hae;iW.exports.fastifyWebsocket=Hae});var w7e=w((eKr,R7e)=>{"use strict";function NSn(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}}R7e.exports=NSn});var I7e=w((tKr,qae)=>{"use strict";var PSn=w7e();function k7e(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=PSn(CSn),i=null,s=null,o=0,a=null,c={push:m,drain:Au,saturated:Au,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||Au,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=Au}function S(){i=null,s=null,c.drain(),c.drain=Au}function b(){var T=i;for(i=null,s=null;T;){var A=T.next,R=T.callback,x=T.errorHandler,k=T.value,N=T.context;T.value=null,T.callback=Au,T.errorHandler=null,x&&x(new Error("abort"),k),R.call(N,new Error("abort")),T.release(T),T=A}c.drain=Au}function _(T){a=T}}function Au(){}function CSn(){this.value=null,this.callback=Au,this.next=null,this.release=Au,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=Au,e.errorHandler&&s(n,o),i.call(e.context,n,r),e.release(e)}}function MSn(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=k7e(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(Au),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(Au),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}}qae.exports=k7e;qae.exports.promise=MSn});var oW=w((nKr,sM)=>{"use strict";var{format:DSn}=Z("node:util");function LSn(){return`${this.name} [${this.code}]: ${this.message}`}var sW=Symbol.for("fastify-error-generic");function Ak(e,t,n=500,r=Error,i=Ak.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=DSn(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=LSn,a}Ak.captureStackTrace=!0;var USn=Ak(sW,"Fastify Error",500,Error);sM.exports=Ak;sM.exports.FastifyError=USn;sM.exports.default=Ak;sM.exports.createError=Ak});var aW=w((rKr,x7e)=>{"use strict";var{createError:VS}=oW();x7e.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:VS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:VS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:VS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:VS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:VS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:VS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:VS("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:VS("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((iKr,O7e)=>{"use strict";var FSn=Symbol("avvio.Boot"),jSn=Symbol("isOnCloseHandler"),HSn=Symbol("avvio.ThenifyDoNotWrap"),qSn=Symbol("avvio.TimeTree.untrackNode"),BSn=Symbol("avvio.TimeTree.trackNode"),GSn=Symbol("avvio.TimeTree.getParent"),zSn=Symbol("avvio.TimeTree.getNode"),VSn=Symbol("avvio.TimeTree.addNode"),WSn=Symbol.for("plugin-meta");O7e.exports={kAvvio:FSn,kIsOnCloseHandler:jSn,kThenifyDoNotWrap:HSn,kUntrackNode:qSn,kTrackNode:BSn,kGetParent:GSn,kGetNode:zSn,kAddNode:VSn,kPluginMeta:WSn}});var U7e=w((sKr,L7e)=>{"use strict";var{kUntrackNode:N7e,kTrackNode:Bae,kGetParent:P7e,kGetNode:C7e,kAddNode:M7e}=Rk(),Gae=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[Bae](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])}[N7e](t){this.tableId.delete(t.id);let n=this.tableLabel.get(t.label);n.pop(),n.length===0&&this.tableLabel.delete(t.label)}[P7e](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}[C7e](t){return this.tableId.get(t)}[M7e](t,n,r){let i=this[P7e](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[Bae](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[Bae](a),o}start(t,n,r=Date.now()){return this[M7e](t,n,r)}stop(t,n=Date.now()){let r=this[C7e](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[N7e](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return D7e(this.toJSON())}};function D7e(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:KSn}=Z("node:util"),ZSn=KSn("avvio");F7e.exports={debug:ZSn}});var H7e=w((aKr,j7e)=>{"use strict";function YSn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}j7e.exports={createPromise:YSn}});var G7e=w((cKr,B7e)=>{"use strict";var{kPluginMeta:q7e}=Rk();function JSn(e,t){return e[q7e]?.name?e[q7e].name:t?.name?t.name:e.name?e.name:e.toString().split(` -`).slice(0,2).map(n=>n.trim()).join(" -- ")}B7e.exports={getPluginName:JSn}});var uW=w((uKr,z7e)=>{"use strict";function XSn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}z7e.exports={isPromiseLike:XSn}});var W7e=w((lKr,V7e)=>{"use strict";var{EventEmitter:QSn}=Z("node:events"),{inherits:$Sn}=Z("node:util"),{debug:_a}=cW(),{createPromise:eEn}=H7e(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:tEn}=aW(),{getPluginName:nEn}=G7e(),{isPromiseLike:rEn}=uW();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=nEn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}$Sn(wk,QSn);wk.prototype.exec=function(e,t){_a("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){_a("loading complete",r);return}this._error=c,_a(c?"exec errored":"exec completed",r),i=!0,s&&clearTimeout(s),t(c)};this.timeout>0&&(_a("setting up timeout",r,this.timeout),s=setTimeout(function(){_a("timed out",r),s=null;let c=new tEn(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);rEn(a)?(_a("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};wk.prototype.loadedSoFar=function(){if(_a("loadedSoFar",this.name),this.loaded)return Promise.resolve();let e=()=>{this.server.after((n,r)=>{this._error=n,this.queue.pause(),this._promise&&(n?(_a("rejecting promise",this.name,n),this._promise.reject(n)):(_a("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=eEn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};wk.prototype.enqueue=function(e,t){_a("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){_a("finish",this.name,e);let n=()=>{this.loaded||(_a("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(_a("check",this.name,this.queue.length(),this.queue.running(),this._promise),this.queue.length()===0&&this.queue.running()===0)if(this._promise){let i=()=>{_a("wrap"),queueMicrotask(r)};this._promise.resolve(),this._promise.promise.then(i,i),this._promise=null}else n();else _a("delayed",this.name),this.queue.drain=()=>{_a("drain",this.name),this.queue.drain=iEn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function iEn(){}V7e.exports={Plugin:wk}});var Z7e=w((dKr,K7e)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:zae}=aW();function sEn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new zae("array"):e===null?new zae("null"):new zae(typeof e)}K7e.exports={validatePlugin:sEn}});var J7e=w((fKr,Y7e)=>{"use strict";function oEn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}Y7e.exports={isBundledOrTypescriptPlugin:oEn}});var $7e=w((pKr,Q7e)=>{"use strict";var{debug:X7e}=cW(),{kThenifyDoNotWrap:Vae}=Rk();function aEn(){if(this.booted){X7e("thenify returning undefined because we are already booted");return}if(this[Vae]){this[Vae]=!1;return}return X7e("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[Vae]=!0,e(this._server)),t)}Q7e.exports={thenify:aEn}});var tQe=w((hKr,eQe)=>{"use strict";var{isPromiseLike:cEn}=uW(),{kAvvio:uEn}=Rk();function lEn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}cEn(r)&&!r[uEn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}eQe.exports={executeWithThenable:lEn}});var lQe=w((mKr,uQe)=>{"use strict";var lW=I7e(),dEn=Z("node:events").EventEmitter,fEn=Z("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:oM,AVV_ERR_CALLBACK_NOT_FN:kk,AVV_ERR_ROOT_PLG_BOOTED:pEn,AVV_ERR_READY_TIMEOUT:hEn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:mEn}=aW(),{kAvvio:iQe,kIsOnCloseHandler:sQe}=Rk(),{TimeTree:gEn}=U7e(),{Plugin:oQe}=W7e(),{debug:Ik}=cW(),{validatePlugin:yEn}=Z7e(),{isBundledOrTypescriptPlugin:SEn}=J7e(),{isPromiseLike:EEn}=uW(),{thenify:aQe}=$7e(),{executeWithThenable:nQe}=tQe();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 gEn,this._readyQ=lW(this,cQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=rQe},this._closeQ=lW(this,_En,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=rQe},this._doStart=null;let r=this;this._root=new oQe(lW(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()})}fEn(Ms,dEn);"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[iQe]=!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:aQe});Ms.prototype._addPlugin=function(e,t,n){if(SEn(e)&&(e=e.default),yEn(e),t=t||{},this.booted)throw new pEn;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 oQe(lW(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 oM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new oM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(Wae(c,this)),this)},n[s])throw new oM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new kk(s,typeof c);return t.ready(c?Wae(c,this):void 0)},n[o])throw new oM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new kk(o,typeof c);return t.onClose(TEn(c,this)),this},n[a])throw new oM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new kk(a,typeof c);return c?(t.close(Wae(c,this)),this):t.close()},n.then)throw new mEn("then");Object.defineProperty(n,"then",{get:aQe.bind(t)}),n[iQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){cQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new kk("onClose",typeof e);return e[sQe]=!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(EEn(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 rQe(){}function cQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,nQe(e,[],t);else if(e.length===1)nQe(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 bEn.call(this,e,r,n,t)}function bEn(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 hEn(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 _En(e,t){let n=this._server,r=e[sQe];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 TEn(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 Wae(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)}}uQe.exports=Ms});var $s=w((gKr,dQe)=>{"use strict";var vEn={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")};dQe.exports=vEn});var pQe=w((yKr,dW)=>{"use strict";var{format:Kae}=Z("node:util");function AEn(e){return fQe({...e,name:"DeprecationWarning"})}function fQe({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=Kae(n,o,a,c):o&&a?u=Kae(n,o,a):o?u=Kae(n,o):u=n,u},s}var Zae={createWarning:fQe,createDeprecation:AEn};dW.exports=Zae;dW.exports.default=Zae;dW.exports.processWarning=Zae});var xk=w((SKr,hQe)=>{"use strict";var{createWarning:aM}=pQe(),REn=aM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),wEn=aM({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}),kEn=aM({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}),IEn=aM({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}),xEn=aM({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});hQe.exports={FSTWRN001:REn,FSTWRN003:wEn,FSTWRN004:kEn,FSTSEC001:IEn,FSTDEP022:xEn}});var Ko=w((EKr,fW)=>{"use strict";var je=oW(),tT={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 OEn(e,t){return t.cause=e,t}fW.exports=tT;fW.exports.appendStackTrace=OEn;fW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:tT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:tT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:tT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:tT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:tT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:tT.FST_ERR_PLUGIN_TIMEOUT}});var WS=w((bKr,vQe)=>{"use strict";var NEn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],SQe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],PEn=SQe.concat(NEn),{FST_ERR_HOOK_INVALID_TYPE:CEn,FST_ERR_HOOK_INVALID_HANDLER:MEn,FST_ERR_SEND_UNDEFINED_ERR:pW,FST_ERR_HOOK_TIMEOUT:DEn,FST_ERR_HOOK_NOT_SUPPORTED:LEn,AVVIO_ERRORS_MAP:mQe,appendStackTrace:gQe}=Ko(),{kChildren:cM,kHooks:EQe,kRequestPayloadStream:yQe}=$s();function uM(){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=[]}uM.prototype=Object.create(null);uM.prototype.validate=function(e,t){if(typeof e!="string")throw new CEn;if(Array.isArray(this[e])===!1)throw new LEn(e);if(typeof t!="function")throw new MEn(e,Object.prototype.toString.call(t))};uM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function UEn(e){let t=new uM;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 bQe(e,t,n,r){let i=n[EQe][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=gQe(l,new DEn(e,f)):l=mQe[l.code]!=null?gQe(l,new mQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[cM].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";AQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var Yae=w((TKr,kQe)=>{"use strict";var{kTestInternals:KEn}=$s();function wQe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}kQe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):wQe,[KEn]:{withResolvers:wQe}}});var FQe=w((vKr,UQe)=>{"use strict";var ZEn=Z("node:http"),YEn=Z("node:https"),IQe=Z("node:http2"),JEn=Z("node:dns"),XEn=Z("node:os"),{kState:Ds,kOptions:QEn,kServerBindings:$En,kHttp2ServerSessions:nT}=$s(),{FSTWRN003:ebn}=xk(),{onListenHookRunner:hW}=WS(),{FST_ERR_REOPENED_CLOSE_SERVER:OQe,FST_ERR_REOPENED_SERVER:NQe,FST_ERR_LISTEN_OPTIONS_INVALID:tbn,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:nbn}=Ko(),rbn=RQe(),PQe=Yae();UQe.exports.createServer=ibn;function CQe(e){return`Server listening at ${e}`}function ibn(e,t){let n=DQe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&ebn("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new tbn("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}xQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,l(null,p),hW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ds].listening=!0,l(null,p),hW(this)},l===void 0)return sbn.call(this,n,u).then(p=>{let{promise:h,resolve:m}=PQe.withResolvers();return d==="localhost"?xQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,m(p),hW(this)}):(m(p),hW(this)),h});this.ready(MQe.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 nbn;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:rbn();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function xQe(e,t,n,r,i){this[Ds].listening=!1,JEn.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:y=>{u++,y||this[$En].push(h),u===c&&i()}}),h=DQe(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,MQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function MQe(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=LQe.call(this,e,t.listenTextResolver||CQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ds].listening&&this[Ds].closing)return t.cb(new OQe,null);if(this[Ds].listening)return t.cb(new NQe,null);e.once("error",n),this[Ds].closing||(e.once("listening",n),e.listen(t),this[Ds].listening=!0)}}function sbn(e,t){return this[Ds].listening&&this[Ds].closing?Promise.reject(new OQe):this[Ds].listening?Promise.reject(new NQe):this.ready().then(()=>{if(this[Ds].aborted)return;let{promise:n,resolve:r,reject:i}=PQe.withResolvers(),s=c=>{a(),this[Ds].listening=!1,i(c)},o=()=>{a(),this[Ds].listening=!0,r(LQe.call(this,e,t.listenTextResolver||CQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function DQe(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"?IQe.createSecureServer(n,t):IQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=abn(i)),i.setTimeout(e.connectionTimeout),i}let r=n?YEn.createServer(n,t):ZEn.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 obn(e){return e.address==="0.0.0.0"?Object.values(XEn.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function LQe(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=obn(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[QEn].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function abn(e){return e[nT]=new Set,e.on("session",function(t){t.once("connect",function(){e[nT].add(t)}),t.once("close",function(){e[nT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[nT].delete(t)}),t.once("goaway",function(){e[nT].delete(t)})}),function(){if(e[nT].size!==0)for(let n of e[nT])n.close()}}});var Qae=w((AKr,qQe)=>{"use strict";var Jae=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,jQe=/^[\w!#$%&'*+.^`|~-]+$/,HQe=/^[\w!#$%&'*+.^`|~-]+\s*$/,Xae=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&&HQe.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||HQe.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=Jae.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=Jae.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=Jae.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=Xae});var mW=w((RKr,BQe)=>{"use strict";var{kReplyHasStatusCode:cbn}=$s();function ubn(e,t){if(!e[cbn]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}BQe.exports={setErrorStatusCode:ubn}});var $ae=w((wKr,zQe)=>{"use strict";var{kReplyIsError:GQe,kReplyHijacked:lbn}=$s(),{setErrorStatusCode:dbn}=mW(),fbn=Z("node:diagnostics_channel"),dM=fbn.tracingChannel("fastify.request.handler");function pbn(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[lbn]!==!0){n&&dM.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[GQe]=!0,t.send(i)}}finally{n&&dM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,dbn(t,r),dM.error.publish(n),dM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[GQe]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&dM.asyncEnd.publish(n)}})}zQe.exports=pbn});var nce=w((kKr,WQe)=>{"use strict";var{kSchemaHeaders:SW,kSchemaParams:ece,kSchemaQuerystring:tce,kSchemaBody:rT,kSchemaResponse:VQe}=$s(),hbn=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:mbn}=Ko(),{FSTWRN001:gW}=xk();function gbn(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[VQe]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!hbn.test(s))throw new mbn;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 ybn(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[SW]=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[SW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&gW("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[rT]=c}else e[rT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&gW("body",i,s);r.querystring?e[tce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&gW("querystring",i,s),r.params?e[ece]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&gW("params",i,s)}function yW(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 EW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=yW(e[ece],t,"params");if(s)return typeof s.then!="function"?KS(s,"params",e.schemaErrorFormatter):Sbn(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[rT]=="function")s=e[rT];else if(e[rT]){let a=Tbn(t.headers["content-type"]),c=e[rT][a];c&&(s=c)}let o=yW(s,t,"body");if(o)return typeof o.then!="function"?KS(o,"body",e.schemaErrorFormatter):Ebn(o,e,t)}if(r||!n.skipQuery){let s=yW(e[tce],t,"query");if(s)return typeof s.then!="function"?KS(s,"querystring",e.schemaErrorFormatter):bbn(s,e,t)}let i=yW(e[SW],t,"headers");return i?typeof i.then!="function"?KS(i,"headers",e.schemaErrorFormatter):_bn(i,e,t):!1}function Sbn(e,t,n){return e.then(r=>r?KS(r,"params",t.schemaErrorFormatter):EW(t,n,{skipParams:!0}))}function Ebn(e,t,n){return e.then(r=>r?KS(r,"body",t.schemaErrorFormatter):EW(t,n,{skipParams:!0,skipBody:!0}))}function bbn(e,t,n){return e.then(r=>r?KS(r,"querystring",t.schemaErrorFormatter):EW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function _bn(e,t,n){return e.then(r=>r?KS(r,"headers",t.schemaErrorFormatter):!1)}function KS(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 Tbn(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}WQe.exports={symbols:{bodySchema:rT,querystringSchema:tce,responseSchema:VQe,paramsSchema:ece,headersSchema:SW},compileSchemasForValidation:ybn,compileSchemasForSerialization:gbn,validate:EW}});var oce=w((IKr,sce)=>{"use strict";var vbn=Z("node:diagnostics_channel"),Abn=Qae(),Rbn=$ae(),{validate:wbn}=nce(),{preValidationHookRunner:kbn,preHandlerHookRunner:Ibn}=WS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:xbn}=Ko(),{setErrorStatusCode:KQe}=mW(),{kReplyIsError:pM,kRouteContext:_h,kFourOhFourContext:Obn,kSupportedHTTPMethods:ZQe}=$s(),fM=vbn.tracingChannel("fastify.request.handler");function Nbn(e,t,n){if(n.sent===!0)return;if(e!=null){n[pM]=!0,n.send(e);return}let r=t.method;if(this[ZQe].bodyless.has(r)){Nk(t,n);return}if(this[ZQe].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")){Nk(t,n);return}t[_h].contentTypeParser.run("",Nk,t,n);return}let o=new Abn(s);if(o.isValid===!1){n[pM]=!0,n.status(415).send(new xbn);return}t[_h].contentTypeParser.run(o.toString(),Nk,t,n);return}Nk(t,n)}function Nk(e,t){try{e[_h].preValidation!==null?kbn(e[_h].preValidation,e,t,rce):rce(null,e,t)}catch(n){rce(n,e,t)}}function rce(e,t,n){if(n.sent===!0)return;if(e!=null){n[pM]=!0,n.send(e);return}let r=wbn(n[_h],t);if(r&&typeof r.then=="function"||!1){let s=YQe.bind(null,t,n);r.then(s,s)}else YQe(t,n,r)}function YQe(e,t,n){if(n){if(t[_h].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[_h].preHandler!==null?Ibn(e[_h].preHandler,e,t,ice):ice(null,e,t)}function ice(e,t,n){if(n.sent)return;let r=t[_h];if(!fM.hasSubscribers||r[Obn]===null)JQe(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};fM.start.runStores(i,JQe,void 0,e,t,n,i)}}function JQe(e,t,n,r){let i=t[_h];try{if(e!=null){n[pM]=!0,r&&(r.error=e,KQe(n,e),fM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,KQe(n,o),fM.error.publish(r)),n[pM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?Rbn(s,n,r):n.send(s))}finally{r&&fM.end.publish(r)}}sce.exports=Nbn;sce.exports[Symbol.for("internals")]={handler:Nk,preHandlerCallback:ice}});var QQe=w((xKr,XQe)=>{"use strict";function Pk(){}var Pbn={fatal:Pk,error:Pk,warn:Pk,info:Pk,debug:Pk,trace:Pk};Object.defineProperty(XQe,"exports",{get(){return Object.create(Pbn)}})});var cce=w((OKr,t$e)=>{"use strict";var hM=e=>e&&typeof e.message=="string",ace=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return hM(n)?n:void 0}else return hM(t)?t:void 0},$Qe=(e,t)=>{if(!hM(e))return"";let n=e.stack||"";if(t.has(e))return n+` -causes have become circular...`;let r=ace(e);return r?(t.add(e),n+` -caused by: `+$Qe(r,t)):n},Cbn=e=>$Qe(e,new Set),e$e=(e,t,n)=>{if(!hM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=ace(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+e$e(i,t,s)}else return r},Mbn=e=>e$e(e,new Set);t$e.exports={isErrorLike:hM,getErrorCause:ace,stackWithCauses:Cbn,messageWithCauses:Mbn}});var uce=w((NKr,r$e)=>{"use strict";var Dbn=Symbol("circular-ref-tag"),bW=Symbol("pino-raw-err-ref"),n$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[bW]},set:function(e){this[bW]=e}}});Object.defineProperty(n$e,bW,{writable:!0,value:{}});r$e.exports={pinoErrProto:n$e,pinoErrorSymbols:{seen:Dbn,rawSymbol:bW}}});var o$e=w((PKr,s$e)=>{"use strict";s$e.exports=dce;var{messageWithCauses:Lbn,stackWithCauses:Ubn,isErrorLike:i$e}=cce(),{pinoErrProto:Fbn,pinoErrorSymbols:jbn}=uce(),{seen:lce}=jbn,{toString:Hbn}=Object.prototype;function dce(e){if(!i$e(e))return e;e[lce]=void 0;let t=Object.create(Fbn);t.type=Hbn.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=Lbn(e),t.stack=Ubn(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>dce(n)));for(let n in e)if(t[n]===void 0){let r=e[n];i$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,lce)&&(t[n]=dce(r)):t[n]=r}return delete e[lce],t.raw=e,t}});var c$e=w((CKr,a$e)=>{"use strict";a$e.exports=TW;var{isErrorLike:fce}=cce(),{pinoErrProto:qbn,pinoErrorSymbols:Bbn}=uce(),{seen:_W}=Bbn,{toString:Gbn}=Object.prototype;function TW(e){if(!fce(e))return e;e[_W]=void 0;let t=Object.create(qbn);t.type=Gbn.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=>TW(n))),fce(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,_W)&&(t.cause=TW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];fce(r)?Object.prototype.hasOwnProperty.call(r,_W)||(t[n]=TW(r)):t[n]=r}return delete e[_W],t.raw=e,t}});var f$e=w((MKr,d$e)=>{"use strict";d$e.exports={mapHttpRequest:zbn,reqSerializer:l$e};var pce=Symbol("pino-raw-req-ref"),u$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[pce]},set:function(e){this[pce]=e}}});Object.defineProperty(u$e,pce,{writable:!0,value:{}});function l$e(e){let t=e.info||e.socket,n=Object.create(u$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 zbn(e){return{req:l$e(e)}}});var g$e=w((DKr,m$e)=>{"use strict";m$e.exports={mapHttpResponse:Vbn,resSerializer:h$e};var hce=Symbol("pino-raw-res-ref"),p$e=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[hce]},set:function(e){this[hce]=e}}});Object.defineProperty(p$e,hce,{writable:!0,value:{}});function h$e(e){let t=Object.create(p$e);return t.statusCode=e.headersSent?e.statusCode:null,t.headers=e.getHeaders?e.getHeaders():e._headers,t.raw=e,t}function Vbn(e){return{res:h$e(e)}}});var gce=w((LKr,y$e)=>{"use strict";var mce=o$e(),Wbn=c$e(),vW=f$e(),AW=g$e();y$e.exports={err:mce,errWithCause:Wbn,mapHttpRequest:vW.mapHttpRequest,mapHttpResponse:AW.mapHttpResponse,req:vW.reqSerializer,res:AW.resSerializer,wrapErrorSerializer:function(t){return t===mce?t:function(r){return t(mce(r))}},wrapRequestSerializer:function(t){return t===vW.reqSerializer?t:function(r){return t(vW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===AW.resSerializer?t:function(r){return t(AW.resSerializer(r))}}}});var yce=w((UKr,S$e)=>{"use strict";function Kbn(e,t){return t}S$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=Kbn;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 A$e=w((FKr,v$e)=>{"use strict";function Sce(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)_$e(l,a);else{let f=typeof n=="function"?n(Ybn(l,a),[...c.slice(0,d),...a]):n;b$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 t_n(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)e_n(t)}function n_n(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;t_n(t);let o=Qbn(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=$bn(c,o),l=c,d=n;return typeof n=="function"&&(d=n),Jbn(u,t,d,s),r===!1?(u.restore=function(){return Sce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}v$e.exports=n_n});var Ck=w((jKr,R$e)=>{"use strict";var r_n=Symbol("pino.setLevel"),i_n=Symbol("pino.getLevel"),s_n=Symbol("pino.levelVal"),o_n=Symbol("pino.levelComp"),a_n=Symbol("pino.useLevelLabels"),c_n=Symbol("pino.useOnlyCustomLevels"),u_n=Symbol("pino.mixin"),l_n=Symbol("pino.lsCache"),d_n=Symbol("pino.chindings"),f_n=Symbol("pino.asJson"),p_n=Symbol("pino.write"),h_n=Symbol("pino.redactFmt"),m_n=Symbol("pino.time"),g_n=Symbol("pino.timeSliceIndex"),y_n=Symbol("pino.stream"),S_n=Symbol("pino.stringify"),E_n=Symbol("pino.stringifySafe"),b_n=Symbol("pino.stringifiers"),__n=Symbol("pino.end"),T_n=Symbol("pino.formatOpts"),v_n=Symbol("pino.messageKey"),A_n=Symbol("pino.errorKey"),R_n=Symbol("pino.nestedKey"),w_n=Symbol("pino.nestedKeyStr"),k_n=Symbol("pino.mixinMergeStrategy"),I_n=Symbol("pino.msgPrefix"),x_n=Symbol("pino.wildcardFirst"),O_n=Symbol.for("pino.serializers"),N_n=Symbol.for("pino.formatters"),P_n=Symbol.for("pino.hooks"),C_n=Symbol.for("pino.metadata");R$e.exports={setLevelSym:r_n,getLevelSym:i_n,levelValSym:s_n,levelCompSym:o_n,useLevelLabelsSym:a_n,mixinSym:u_n,lsCacheSym:l_n,chindingsSym:d_n,asJsonSym:f_n,writeSym:p_n,serializersSym:O_n,redactFmtSym:h_n,timeSym:m_n,timeSliceIndexSym:g_n,streamSym:y_n,stringifySym:S_n,stringifySafeSym:E_n,stringifiersSym:b_n,endSym:__n,formatOptsSym:T_n,messageKeySym:v_n,errorKeySym:A_n,nestedKeySym:R_n,wildcardFirstSym:x_n,needsMetadataGsym:C_n,useOnlyCustomLevelsSym:c_n,formattersSym:N_n,hooksSym:P_n,nestedKeyStrSym:w_n,mixinMergeStrategySym:k_n,msgPrefixSym:I_n}});var bce=w((HKr,x$e)=>{"use strict";var w$e=A$e(),{redactFmtSym:M_n,wildcardFirstSym:wW}=Ck(),Ece=/[^.[\]]+|\[([^[\]]*?)\]/g,k$e="[Redacted]",I$e=!1;function D_n(e,t){let{paths:n,censor:r,remove:i}=L_n(e),s=n.reduce((c,u)=>{Ece.lastIndex=0;let l=Ece.exec(u),d=Ece.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=wW),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!==wW&&c[f].length===0&&c[f].push(...c[wW]||[]),f===wW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[M_n]:w$e({paths:n,censor:r,serialize:t,strict:I$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]=w$e({paths:s[u],censor:l,serialize:t,strict:I$e,remove:i})}return c},o)}function L_n(e){if(Array.isArray(e))return e={paths:e,censor:k$e},e;let{paths:t,censor:n=k$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}}x$e.exports=D_n});var P$e=w((qKr,N$e)=>{"use strict";var U_n=()=>"",F_n=()=>`,"time":${Date.now()}`,j_n=()=>`,"time":${Math.round(Date.now()/1e3)}`,H_n=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,q_n=1000000n,O$e=1000000000n,B_n=BigInt(Date.now())*q_n,G_n=process.hrtime.bigint(),z_n=()=>{let e=process.hrtime.bigint()-G_n,t=B_n+e,n=t/O$e,r=t%O$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:U_n,epochTime:F_n,unixTime:j_n,isoTime:H_n,isoTimeNano:z_n}});var M$e=w((BKr,C$e)=>{"use strict";function V_n(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}C$e.exports=W_n;function W_n(e,t,n){var r=n&&n.stringify||V_n,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));_ce.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(););};_ce.exports=e}});var B$e=w((zKr,q$e)=>{"use strict";var Si=Z("fs"),K_n=Z("events"),Z_n=Z("util").inherits,D$e=Z("path"),Ace=Tce(),Y_n=Z("assert"),kW=100,IW=Buffer.allocUnsafe(0),J_n=16*1024,L$e="buffer",U$e="utf8",[X_n,Q_n]=(process.versions.node||"0.0").split(".").map(Number),$_n=X_n>=22&&Q_n>=7;function F$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(D$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(D$e.dirname(e),{recursive:!0},s=>{if(s)return n(s);Si.open(e,r,i,n)}):Si.open(e,r,i,n)}function If(e){if(!(this instanceof If))return new If(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||J_n,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===L$e)this._writingBuf=IW,this.write=nTn,this.flush=iTn,this.flushSync=oTn,this._actualWrite=cTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===U$e)this._writingBuf="",this.write=tTn,this.flush=rTn,this.flushSync=sTn,this._actualWrite=aTn,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 "${U$e}" and "${L$e}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")F$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{Ace(kW),this.release(void 0,0)}catch(b){this.release(b)}else setTimeout(m,kW);else this._writing=!1,this.emit("error",y);return}this.emit("write",g);let E=vce(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 b=h(),_=vce(this._writingBuf,this._len,b);this._len=_.len,this._writingBuf=_.writingBuf}while(this._writingBuf.length)}catch(b){this.release(b);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,xW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(eTn,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 vce(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 eTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}Z_n(If,K_n);function j$e(e,t){return e.length===0?IW:e.length===1?e[0]:Buffer.concat(e,t)}function tTn(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 rTn(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&&H$e.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function iTn(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&&H$e.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}If.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)})}),F$e(this.file,this)};If.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():xW(this)))};function sTn(){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=vce(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;Ace(kW)}}try{Si.fsyncSync(this.fd)}catch{}}function oTn(){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=IW);let e=IW;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;Ace(kW)}}}If.prototype.destroy=function(){this.destroyed||xW(this)};function aTn(){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 cTn(){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 $_n&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function xW(e){if(e.fd===-1){e.once("ready",xW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],Y_n(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")}}If.SonicBoom=If;If.default=If;q$e.exports=If});var Rce=w((VKr,K$e)=>{"use strict";var xf={exit:[],beforeExit:[]},G$e={exit:dTn,beforeExit:fTn},Mk;function uTn(){Mk===void 0&&(Mk=new FinalizationRegistry(pTn))}function lTn(e){xf[e].length>0||process.on(e,G$e[e])}function z$e(e){xf[e].length>0||(process.removeListener(e,G$e[e]),xf.exit.length===0&&xf.beforeExit.length===0&&(Mk=void 0))}function dTn(){V$e("exit")}function fTn(){V$e("beforeExit")}function V$e(e){for(let t of xf[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}xf[e]=[]}function pTn(e){for(let t of["exit","beforeExit"]){let n=xf[t].indexOf(e);xf[t].splice(n,n+1),z$e(t)}}function W$e(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");lTn(e);let r=new WeakRef(t);r.fn=n,uTn(),Mk.register(t,r),xf[e].push(r)}function hTn(e,t){W$e("exit",e,t)}function mTn(e,t){W$e("beforeExit",e,t)}function gTn(e){if(Mk!==void 0){Mk.unregister(e);for(let t of["exit","beforeExit"])xf[t]=xf[t].filter(n=>{let r=n.deref();return r&&r!==e}),z$e(t)}}K$e.exports={register:hTn,registerBeforeExit:mTn,unregister:gTn}});var Z$e=w((WKr,yTn)=>{yTn.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 J$e=w((KKr,Y$e)=>{"use strict";function STn(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 ETn(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()}Y$e.exports={wait:STn,waitDiff:ETn}});var Q$e=w((ZKr,X$e)=>{"use strict";X$e.exports={WRITE_INDEX:4,READ_INDEX:8}});var ret=w((YKr,net)=>{"use strict";var{version:bTn}=Z$e(),{EventEmitter:_Tn}=Z("events"),{Worker:TTn}=Z("worker_threads"),{join:vTn}=Z("path"),{pathToFileURL:ATn}=Z("url"),{wait:RTn}=J$e(),{WRITE_INDEX:wu,READ_INDEX:Ru}=Q$e(),wTn=Z("buffer"),kTn=Z("assert"),be=Symbol("kImpl"),ITn=wTn.constants.MAX_STRING_LENGTH,mM=class{constructor(t){this._value=t}deref(){return this._value}},NW=class{register(){}unregister(){}},xTn=process.env.NODE_V8_COVERAGE?NW:global.FinalizationRegistry||NW,OTn=process.env.NODE_V8_COVERAGE?mM:global.WeakRef||mM,$$e=new xTn(e=>{e.exited||e.terminate()});function NTn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||vTn(__dirname,"lib","worker.js"),o=new TTn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:ATn(n).href,dataBuf:e[be].dataBuf,stateBuf:e[be].stateBuf,workerData:{$context:{threadStreamVersion:bTn},...r}}});return o.stream=new mM(e),o.on("message",PTn),o.on("exit",tet),$$e.register(e,o),o}function eet(e){kTn(!e[be].sync),e[be].needDrain&&(e[be].needDrain=!1,e.emit("drain"))}function OW(e){let t=Atomics.load(e[be].state,wu),n=e[be].data.length-t;if(n>0){if(e[be].buf.length===0){e[be].flushing=!1,e[be].ending?Oce(e):e[be].needDrain&&process.nextTick(eet,e);return}let r=e[be].buf.slice(0,n),i=Buffer.byteLength(r);i<=n?(e[be].buf=e[be].buf.slice(n),PW(e,r,OW.bind(null,e))):e.flush(()=>{if(!e.destroyed){for(Atomics.store(e[be].state,Ru,0),Atomics.store(e[be].state,wu,0),Atomics.notify(e[be].state,Ru);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),PW(e,r,OW.bind(null,e))}})}else if(n===0){if(t===0&&e[be].buf.length===0)return;e.flush(()=>{Atomics.store(e[be].state,Ru,0),Atomics.store(e[be].state,wu,0),Atomics.notify(e[be].state,Ru),OW(e)})}else Th(e,new Error("overwritten"))}function PTn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new OTn(t),t.flush(()=>{t[be].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 tet(e){let t=this.stream.deref();t!==void 0&&($$e.unregister(t),t.worker.exited=!0,t.worker.off("exit",tet),Th(t,e!==0?new Error("the worker thread exited"):null))}var kce=class extends _Tn{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=NTn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[be].destroyed)return Ice(this,new Error("the worker has exited")),!1;if(this[be].ending)return Ice(this,new Error("the worker is ending")),!1;if(this[be].flushing&&this[be].buf.length+t.length>=ITn)try{wce(this),this[be].flushing=!0}catch(n){return Th(this,n),!1}if(this[be].buf+=t,this[be].sync)try{return wce(this),!0}catch(n){return Th(this,n),!1}return this[be].flushing||(this[be].flushing=!0,setImmediate(OW,this)),this[be].needDrain=this[be].data.length-this[be].buf.length-Atomics.load(this[be].state,wu)<=0,!this[be].needDrain}end(){this[be].destroyed||(this[be].ending=!0,Oce(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,wu);RTn(this[be].state,Ru,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[be].destroyed||(wce(this),xce(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 Ice(e,t){setImmediate(()=>{e.emit("error",t)})}function Th(e,t){e[be].destroyed||(e[be].destroyed=!0,t&&(e[be].errored=t,Ice(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 PW(e,t,n){let r=Atomics.load(e[be].state,wu),i=Buffer.byteLength(t);return e[be].data.write(t,r),Atomics.store(e[be].state,wu,r+i),Atomics.notify(e[be].state,wu),n(),!0}function Oce(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,Ru);Atomics.store(e[be].state,wu,-1),Atomics.notify(e[be].state,wu);let n=0;for(;t!==-1;){if(Atomics.wait(e[be].state,Ru,t,1e3),t=Atomics.load(e[be].state,Ru),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[be].finished=!0,e.emit("finish")})}catch(t){Th(e,t)}}}function wce(e){let t=()=>{e[be].ending?Oce(e):e[be].needDrain&&process.nextTick(eet,e)};for(e[be].flushing=!1;e[be].buf.length!==0;){let n=Atomics.load(e[be].state,wu),r=e[be].data.length-n;if(r===0){xce(e),Atomics.store(e[be].state,Ru,0),Atomics.store(e[be].state,wu,0),Atomics.notify(e[be].state,Ru);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),PW(e,i,t);else{for(xce(e),Atomics.store(e[be].state,Ru,0),Atomics.store(e[be].state,wu,0),Atomics.notify(e[be].state,Ru);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),PW(e,i,t)}}}function xce(e){if(e[be].flushing)throw new Error("unable to flush while flushing");let t=Atomics.load(e[be].state,wu),n=0;for(;;){let r=Atomics.load(e[be].state,Ru);if(r===-2)throw Error("_flushSync failed");if(r!==t)Atomics.wait(e[be].state,Ru,r,1e3);else break;if(++n===10)throw new Error("_flushSync took too long (10s)")}}net.exports=kce});var Cce=w((JKr,oet)=>{"use strict";var{createRequire:CTn}=Z("module"),{existsSync:MTn}=Z("node:fs"),DTn=yce(),{join:Nce,isAbsolute:set,sep:LTn}=Z("node:path"),{fileURLToPath:UTn}=Z("node:url"),FTn=Tce(),Pce=Rce(),jTn=ret();function HTn(e){Pce.register(e,VTn),Pce.registerBeforeExit(e,WTn),e.on("close",function(){Pce.unregister(e)})}function qTn(){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"]||Nce(__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 zTn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,set(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return Nce(__dirname,"..","file.js");let m;for(let y of u)try{let g=y==="node:repl"?process.cwd()+LTn:y;m=CTn(g).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}oet.exports=KTn});var DW=w((QKr,_et)=>{"use strict";var ZTn=Z("node:diagnostics_channel"),aet=M$e(),{mapHttpRequest:YTn,mapHttpResponse:JTn}=gce(),Dce=B$e(),cet=Rce(),{lsCacheSym:XTn,chindingsSym:het,writeSym:uet,serializersSym:met,formatOptsSym:det,endSym:QTn,stringifiersSym:get,stringifySym:yet,stringifySafeSym:Lce,wildcardFirstSym:Eet,nestedKeySym:$Tn,formattersSym:bet,messageKeySym:evn,errorKeySym:tvn,nestedKeyStrSym:nvn,msgPrefixSym:CW}=Ck(),{isMainThread:rvn}=Z("worker_threads"),ivn=Cce(),[svn]=process.versions.node.split(".").map(e=>Number(e)),fet=ZTn.tracingChannel("pino_asJson"),Mce=svn>=25?e=>JSON.stringify(e):avn;function Dk(){}function ovn(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=YTn(r):typeof r.setHeader=="function"&&(r=JTn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[CW]=="string"&&s!==void 0&&s!==null&&(s=this[CW]+s),this[uet](r,aet(s,o,this[det]),e)}else{let s=r===void 0?i.shift():r;typeof this[CW]=="string"&&s!==void 0&&s!==null&&(s=this[CW]+s),this[uet](null,aet(s,i,this[det]),e)}}}function avn(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 cvn(e,t,n,r){if(fet.hasSubscribers===!1)return pet.call(this,e,t,n,r);let i={instance:this,arguments};return fet.traceSync(pet,i,this,e,t,n,r)}function pet(e,t,n,r){let i=this[yet],s=this[Lce],o=this[get],a=this[QTn],c=this[het],u=this[met],l=this[bet],d=this[evn],f=this[tvn],p=this[XTn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[Eet],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||Mce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let b=Mce(E);y+=","+b+":"+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||Mce)(h),g=',"'+d+'":'+h;break;default:h=(E||i)(h,s),g=',"'+d+'":'+h}}return this[$Tn]&&y?p+this[nvn]+y.slice(1)+"}"+g+a:p+y+g+a}function uvn(e,t){let n,r=e[het],i=e[yet],s=e[Lce],o=e[get],a=o[Eet],c=e[met],u=e[bet].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 lvn(e){return e.write!==e.constructor.prototype.write}function MW(e){let t=new Dce(e);return t.on("error",n),!e.sync&&rvn&&(cet.register(t,dvn),t.on("close",function(){cet.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 dvn(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",function(){e.end()})):e.flushSync())}function fvn(e){return function(n,r,i={},s){if(typeof i=="string")s=MW({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=MW({dest:s})}else if(i instanceof Dce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof Dce||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=ivn({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||(lvn(process.stdout)?s=process.stdout:s=MW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function pvn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Lce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function hvn(e,t,n){return{level:e,bindings:t,log:n}}function mvn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}_et.exports={noop:Dk,buildSafeSonicBoom:MW,asChindings:uvn,asJson:cvn,genLog:ovn,createArgsNormalizer:fvn,stringify:pvn,buildFormatters:hvn,normalizeDestFileDescriptor:mvn}});var LW=w(($Kr,Tet)=>{var gvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},yvn={ASC:"ASC",DESC:"DESC"};Tet.exports={DEFAULT_LEVELS:gvn,SORTING_ORDER:yvn}});var jce=w((e3r,wet)=>{"use strict";var{lsCacheSym:Svn,levelValSym:Uce,useOnlyCustomLevelsSym:Evn,streamSym:bvn,formattersSym:_vn,hooksSym:Tvn,levelCompSym:vet}=Ck(),{noop:vvn,genLog:iT}=DW(),{DEFAULT_LEVELS:vh,SORTING_ORDER:Aet}=LW(),Ret={fatal:e=>{let t=iT(vh.fatal,e);return function(...n){let r=this[bvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>iT(vh.error,e),warn:e=>iT(vh.warn,e),info:e=>iT(vh.info,e),debug:e=>iT(vh.debug,e),trace:e=>iT(vh.trace,e)},Fce=Object.keys(vh).reduce((e,t)=>(e[vh[t]]=t,e),{}),Avn=Object.keys(Fce).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function Rvn(e){let t=e[_vn].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[Svn]=r,e}function wvn(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 kvn(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[Uce],i=this[Uce]=n[e],s=this[Evn],o=this[vet],a=this[Tvn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=vvn;continue}this[c]=wvn(c,s)?Ret[c](a):iT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function Ivn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function xvn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[vet](n,this[Uce])}function Ovn(e,t,n){return e===Aet.DESC?t<=n:t>=n}function Nvn(e){return typeof e=="string"?Ovn.bind(null,e):e}function Pvn(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:Fce,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:vh,e);return{labels:r,values:i}}function Cvn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(Fce).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 Mvn(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 Dvn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(Aet).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}wet.exports={initialLsCache:Avn,genLsCache:Rvn,levelMethods:Ret,getLevel:Ivn,setLevel:kvn,isLevelEnabled:xvn,mappings:Pvn,assertNoLevelCollisions:Mvn,assertDefaultLevelFound:Cvn,genLevelComparison:Nvn,assertLevelComparison:Dvn}});var Hce=w((t3r,ket)=>{"use strict";ket.exports={version:"10.3.1"}});var Det=w((r3r,Met)=>{"use strict";var{EventEmitter:Lvn}=Z("node:events"),{lsCacheSym:Uvn,levelValSym:Fvn,setLevelSym:Bce,getLevelSym:Iet,chindingsSym:FW,mixinSym:jvn,asJsonSym:Oet,writeSym:Hvn,mixinMergeStrategySym:qvn,timeSym:Bvn,timeSliceIndexSym:Gvn,streamSym:Net,serializersSym:sT,formattersSym:gM,errorKeySym:zvn,messageKeySym:Vvn,useOnlyCustomLevelsSym:Wvn,needsMetadataGsym:Kvn,redactFmtSym:Zvn,stringifySym:Yvn,formatOptsSym:Jvn,stringifiersSym:Xvn,msgPrefixSym:Gce,hooksSym:Qvn}=Ck(),{getLevel:$vn,setLevel:eAn,isLevelEnabled:tAn,mappings:nAn,initialLsCache:rAn,genLsCache:iAn,assertNoLevelCollisions:sAn}=jce(),{asChindings:zce,asJson:oAn,buildFormatters:qce,stringify:xet,noop:Pet}=DW(),{version:aAn}=Hce(),cAn=bce(),uAn=class{},Cet={constructor:uAn,child:lAn,bindings:dAn,setBindings:fAn,flush:mAn,isLevelEnabled:tAn,version:aAn,get level(){return this[Iet]()},set level(e){this[Bce](e)},get levelVal(){return this[Fvn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[Gce]},get[Symbol.toStringTag](){return"Pino"},[Uvn]:rAn,[Hvn]:hAn,[Oet]:oAn,[Iet]:$vn,[Bce]:eAn};Object.setPrototypeOf(Cet,Lvn.prototype);Met.exports=function(){return Object.create(Cet)};var UW=e=>e;function lAn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[sT],r=this[gM],i=Object.create(this);if(t==null)return i[gM].bindings!==UW&&(i[gM]=qce(r.level,UW,r.log)),i[FW]=zce(i,e),this.onChild!==Pet&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[sT]=Object.create(null);for(let u in n)i[sT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:yM}=Object.prototype,aT=Kce();aT.configure=Kce;aT.stringify=aT;aT.default=aT;Zce.stringify=aT;Zce.configure=Kce;Fet.exports=aT;var gAn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function ZS(e){return e.length<5e3&&!gAn.test(e)?`"${e}"`:JSON.stringify(e)}function Vce(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 yAn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function Wce(e){return yAn.call(e)!==void 0&&e.length!==0}function Let(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function oT(e){return e===1?"1 item":`${e} items`}function _An(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function TAn(e){if(yM.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 Kce(e){e={...e};let t=TAn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=SAn(e),r=bAn(e,"bigint"),i=EAn(e),s=typeof i=="function"?i:void 0,o=Uet(e,"maximumDepth"),a=Uet(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 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+=`${_}"... ${oT(V)} not stringified"`}return g!==""&&(b+=` -${T}`),m.pop(),`[${b}]`}let A=Object.keys(S),R=A.length;if(R===0)return"{}";if(oa){let P=R-a;b+=`${k}"...":${x}"${oT(P)} not stringified"`,k=_}return g!==""&&k.length>1&&(b=` -${E}${b} -${T}`),m.pop(),`{${b}}`}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 ZS(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+=`${_}"... ${oT(N)} not stringified"`}return g!==""&&(b+=` -${S}`),m.pop(),`[${b}]`}m.push(h);let T="";g!==""&&(E+=g,_=`, -${E}`,T=" ");let A="";for(let R of y){let x=u(R,h[R],m,y,g,E);x!==void 0&&(b+=`${A}${ZS(R)}:${T}${x}`,A=_)}return g!==""&&A.length>1&&(b=` -${E}${b} -${S}`),m.pop(),`{${b}}`}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 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,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 F=h.length-a-1;x+=`${k}"... ${oT(F)} not stringified"`}return x+=` -${E}`,m.pop(),`[${x}]`}let S=Object.keys(h),b=S.length;if(b===0)return"{}";if(oa){let x=b-a;T+=`${A}"...": "${oT(x)} not stringified"`,A=_}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 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 y="",g=h.length!==void 0;if(g&&Array.isArray(h)){if(h.length===0)return"[]";if(oa){let x=h.length-a-1;y+=`,"... ${oT(x)} 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+=`${b}"...":"${oT(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,[],_An(h),y,"")}if(y.length!==0)return l("",p,[],y,"")}return d("",p,[])}return f}});var Get=w((i3r,Bet)=>{"use strict";var Yce=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:qet}=LW(),vAn=qet.info;function AAn(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,[Yce]:!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=RAn(h.length,t.dedupe);kAn(g,h.length,t.dedupe);g=wAn(g,t.dedupe))if(f=h[g],f.level<=p){if(m!==0&&m!==f.level)break;if(y=f.stream,y[Yce]){let{lastTime:E,lastMsg:S,lastObj:b,lastLogger:_}=this;y.lastLevel=p,y.lastTime=E,y.lastMsg=S,y.lastObj=b,y.lastLogger=_}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=vAn;let g={stream:p,level:y,levelVal:void 0,id:++r.lastId};return h.unshift(g),h.sort(Het),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(Het),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 IAn=Z("node:os"),Xet=gce(),xAn=yce(),OAn=bce(),Qet=P$e(),NAn=Det(),$et=Ck(),{configure:PAn}=jet(),{assertDefaultLevelFound:CAn,mappings:ett,genLsCache:MAn,genLevelComparison:DAn,assertLevelComparison:LAn}=jce(),{DEFAULT_LEVELS:ttt,SORTING_ORDER:UAn}=LW(),{createArgsNormalizer:FAn,asChindings:jAn,buildSafeSonicBoom:zet,buildFormatters:HAn,stringify:Jce,normalizeDestFileDescriptor:Vet,noop:qAn}=DW(),{version:BAn}=Hce(),{chindingsSym:Wet,redactFmtSym:GAn,serializersSym:Ket,timeSym:zAn,timeSliceIndexSym:VAn,streamSym:WAn,stringifySym:Zet,stringifySafeSym:Xce,stringifiersSym:Yet,setLevelSym:KAn,endSym:ZAn,formatOptsSym:YAn,messageKeySym:JAn,errorKeySym:XAn,nestedKeySym:QAn,mixinSym:$An,levelCompSym:eRn,useOnlyCustomLevelsSym:tRn,formattersSym:Jet,hooksSym:nRn,nestedKeyStrSym:rRn,mixinMergeStrategySym:iRn,msgPrefixSym:sRn}=$et,{epochTime:ntt,nullTime:oRn}=Qet,{pid:aRn}=process,cRn=IAn.hostname(),uRn=Xet.err,lRn={level:"info",levelComparison:UAn.ASC,levels:ttt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:aRn,hostname:cRn},serializers:Object.assign(Object.create(null),{err:uRn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:ntt,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},dRn=FAn(lRn),fRn=Object.assign(Object.create(null),Xet);function Qce(...e){let t={},{opts:n,stream:r}=dRn(t,xAn(),...e);n.level&&typeof n.level=="string"&&ttt[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:b,depthLimit:_,edgeLimit:T,onChild:A,msgPrefix:R}=n,x=PAn({maximumDepth:_,maximumBreadth:T}),k=HAn(S.level,S.bindings,S.log),N=Jce.bind({[Xce]:x}),P=i?OAn(i,N):{},C=i?{stringify:P[GAn]}:{stringify:N},F="}"+(s?`\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 nM(n,r,i,s)}});var dJe=w((l4r,lJe)=>{"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}${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 P=h.length-a-1;E+=`${_}"... ${cT(P)} not stringified"`}return y!==""&&(E+=` +${S}`),m.pop(),`[${E}]`}m.push(h);let T="";y!==""&&(b+=y,_=`, +${b}`,T=" ");let R="";for(let A of g){let x=u(A,h[A],m,g,y,b);x!==void 0&&(E+=`${R}${JS(A)}:${T}${x}`,R=_)}return y!==""&&R.length>1&&(E=` +${b}${E} +${S}`),m.pop(),`{${E}}`}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 JS(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 b=y;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} +${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 `:` -`),V=jAn.bind(null,{[Wet]:"",[Ket]:o,[Yet]:P,[Zet]:Jce,[Xce]:x,[Jet]:k}),K="";d!==null&&(f===void 0?K=V(d):K=V(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?ntt:oRn,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"`);CAn(p,h,E);let X=ett(h,E);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:X,messageKey:c,errorKey:u}}),LAn(m);let G=DAn(m);return Object.assign(t,{levels:X,[eRn]:G,[tRn]:E,[WAn]:r,[zAn]:$,[VAn]:B,[Zet]:Jce,[Xce]:x,[Yet]:P,[ZAn]:F,[YAn]:C,[JAn]:c,[XAn]:u,[QAn]:l,[rRn]:l?`,${JSON.stringify(l)}:{`:"",[Ket]:o,[$An]:y,[iRn]:g,[Wet]:K,[Jet]:k,[nRn]:b,silent:qAn,onChild:A,[sRn]:R}),Object.setPrototypeOf(t,NAn()),MAn(t),t[KAn](p),t}Td.exports=Qce;Td.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=Vet(e.dest||process.stdout.fd),zet(e)):zet({dest:Vet(e),minLength:0});Td.exports.transport=Cce();Td.exports.multistream=Get();Td.exports.levels=ett();Td.exports.stdSerializers=fRn;Td.exports.stdTimeFunctions=Object.assign({},Qet);Td.exports.symbols=$et;Td.exports.version=BAn;Td.exports.default=Qce;Td.exports.pino=Qce});var ott=w((o3r,stt)=>{"use strict";var jW=rtt(),{serializersSym:itt}=jW.symbols,{FST_ERR_LOG_INVALID_DESTINATION:pRn}=Ko();function hRn(e){if(e.stream&&e.file)throw new pRn;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[itt]&&(e.serializers=Object.assign({},e.serializers,t[itt])),r=t.child({},e),e.logger=t,e.genReqId=n):r=jW(e,e.stream),r}var mRn={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}}};stt.exports={serializers:mRn,createPinoLogger:hRn}});var SM=w((a3r,ctt)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:gRn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:yRn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:SRn,FST_ERR_LOG_INVALID_LOGGER:ERn}=Ko();function bRn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==att&&HW(o,!0),o}function att(e,t,n){return e.child(t,n)}function HW(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 ERn(r.join(","))}else return!0}function _Rn(e){if(e.logger&&e.loggerInstance)throw new gRn;if(!e.loggerInstance&&!e.logger){let o=QQe();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=ott();if(HW(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(HW(e.logger))throw yRn();if(e.loggerInstance)throw SRn();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 TRn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}ctt.exports={createChildLogger:bRn,defaultChildLoggerFactory:att,createLogger:_Rn,validateLogger:HW,now:TRn}});var qW=w((c3r,utt)=>{"use strict";utt.exports=vRn;function Lk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function vRn(e){if(e=e||{},e.circles)return ARn(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 RRn=qW()({circles:!1,proto:!0}),{kSchemaVisited:ltt,kSchemaResponse:wRn}=$s(),$ce=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:kRn,FST_ERR_SCH_ALREADY_PRESENT:IRn,FST_ERR_SCH_DUPLICATE:xRn,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:dtt}=Ko(),ptt=["params","body","querystring","query","headers"];function BW(e){this.store=e||{}}BW.prototype.add=function(e){let t=RRn(e.isFluentSchema||e.isFluentJSONSchema||e[$ce]?e.valueOf():e),n=t.$id;if(!n)throw new kRn;if(this.store[n])throw new IRn(n);this.store[n]=t};BW.prototype.getSchemas=function(){return Object.assign({},this.store)};BW.prototype.getSchema=function(e){return this.store[e]};function ftt(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function ORn(e,t){if(e[ltt])return e;if(e.query){if(e.querystring)throw new xRn("querystring");e.querystring=e.query}NRn(e);for(let n of ptt){let r=e[n];if(r&&!ftt(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var CRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;gtt.exports=class mtt{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&&CRn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new mtt(t)}}});var Stt=w((d3r,ytt)=>{"use strict";var MRn=GW(),DRn={mode:"standalone"},LRn=MRn.restoreFromState(DRn),URn=null;ytt.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,b=g+g,_="null";function T(R){let x=R&&typeof R.toJSON=="function"?R.toJSON():R;if(x===null)return E;let k,N=d,P=!1;return k=x.statusCode,k!==void 0&&(!P&&(P=!0)||(N+=m),N+='"statusCode":',N+=i(k)),k=x.code,k!==void 0&&(!P&&(P=!0)||(N+=m),N+='"code":',typeof k!="string"?k===null?N+=b:k instanceof Date?N+=g+k.toISOString()+g:k instanceof RegExp?N+=r(k.source):N+=r(k.toString()):N+=r(k)),k=x.error,k!==void 0&&(!P&&(P=!0)||(N+=m),N+='"error":',typeof k!="string"?k===null?N+=b:k instanceof Date?N+=g+k.toISOString()+g:k instanceof RegExp?N+=r(k.source):N+=r(k.toString()):N+=r(k)),k=x.message,k!==void 0&&(!P&&(P=!0)||(N+=m),N+='"message":',typeof k!="string"?k===null?N+=b:k instanceof Date?N+=g+k.toISOString()+g:k instanceof RegExp?N+=r(k.source):N+=r(k.toString()):N+=r(k)),N+f}return T})(URn,LRn)});var bM=w((f3r,Ttt)=>{"use strict";var Ett=Z("node:http").STATUS_CODES,FRn=$ae(),{setErrorStatusCode:jRn}=mW(),{kReplyHeaders:cT,kReplyNextErrorHandler:zW,kReplyIsRunningOnErrorHook:HRn,kRouteContext:_tt,kDisableRequestLogging:VW}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:qRn,FST_ERR_FAILED_ERROR_SERIALIZATION:BRn}=Ko(),{getSchemaSerializer:GRn}=EM(),eue=Stt(),zRn={func:WRn,toJSON(){return this.func.name.toString()+"()"}};function VRn(e,t,n){e[HRn]=!1;let r=e[_tt];if(e[zW]===!1){btt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[cT])}catch(c){o.log[VW]||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[zW]||r.errorHandler;e[zW]=Object.getPrototypeOf(i),delete e[cT]["content-type"],delete e[cT]["content-length"];let s=i.func;if(!s){e[zW]=!1,btt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?FRn(o,e):e.send(o))}catch(o){e.send(o)}}function WRn(e,t,n){ZRn(e,n),jRn(n,e),n.statusCode<500?n.log[VW]||n.log.info({res:n,err:e},e?.message):n.log[VW]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function btt(e,t,n){let r=t.raw,i=t.statusCode;t[cT]["content-type"]=t[cT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=GRn(t[_tt],i,t[cT]["content-type"]);o===!1?s=eue({error:Ett[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:Ett[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[VW]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=eue(new BRn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=eue(new qRn(typeof s))),t[cT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function KRn(e=zRn,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function ZRn(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}Ttt.exports={buildErrorHandler:KRn,handleError:VRn}});var vM=w((p3r,wtt)=>{"use strict";var{kReply:tue,kRequest:nue,kState:YRn,kHasBeenDecorated:JRn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:vtt,FST_ERR_DEC_MISSING_DEPENDENCY:XRn,FST_ERR_DEC_AFTER_START:QRn,FST_ERR_DEC_REFERENCE_TYPE:$Rn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:ewn,FST_ERR_DEC_UNDECLARED:twn}=Ko();function nwn(e,t,n,r){if(Object.hasOwn(e,t))throw new vtt(t);rue(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 rwn(e){if(!_M(this,e))throw new twn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function Att(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||TM(e,t))throw new vtt(t);e[JRn]=!0,rue(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 Rtt(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new $Rn(e,typeof t)}function iwn(e,t,n){return iue(this,e),nwn(this,e,t,n),this}function _M(e,t){return t?t in e||e.prototype&&t in e.prototype||TM(e,t):e in this}function TM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function swn(e){return e&&TM(this[nue],e)?!0:_M(this[nue].prototype,e)}function own(e){return e&&TM(this[tue],e)?!0:_M(this[tue].prototype,e)}function rue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new ewn(t);for(let r=0;r!==n.length;++r)if(!_M(e,n[r]))throw new XRn(n[r])}}function awn(e,t,n){return iue(this,e),Rtt(e,t),Att(this[tue],e,t,n),this}function cwn(e,t,n){return iue(this,e),Rtt(e,t),Att(this[nue],e,t,n),this}function iue(e,t){if(e[YRn].started)throw new QRn(t)}wtt.exports={add:iwn,exist:_M,existRequest:swn,existReply:own,dependencies:rue,decorateReply:awn,decorateRequest:cwn,getInstanceDecorator:rwn,hasKey:TM}});var eK=w((h3r,$W)=>{"use strict";var WW=Z("node:stream").finished,{kFourOhFourContext:ktt,kReplyErrorHandlerCalled:Mtt,kReplyHijacked:uue,kReplyStartTime:RM,kReplyEndTime:lue,kReplySerializer:eg,kReplySerializerDefault:KW,kReplyIsError:ZW,kReplyHeaders:jr,kReplyTrailers:Zo,kReplyHasStatusCode:due,kReplyIsRunningOnErrorHook:fue,kReplyNextErrorHandler:uwn,kDisableRequestLogging:Dtt,kSchemaResponse:YW,kReplyCacheSerializeFns:YS,kSchemaController:sue,kOptions:lwn,kRouteContext:Mn,kTimeoutTimer:JW,kOnAbort:Uk,kRequestSignal:Ltt}=$s(),{onSendHookRunner:Utt,onResponseHookRunner:dwn,preHandlerHookRunner:fwn,preSerializationHookRunner:pwn}=WS(),Itt=oce()[Symbol.for("internals")],hwn=SM(),cue=hwn.now,{handleError:xtt}=bM(),{getSchemaSerializer:mwn}=EM(),oue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:gwn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:ywn,FST_ERR_REP_READABLE_STREAM_LOCKED:Swn,FST_ERR_REP_ALREADY_SENT:Ewn,FST_ERR_SEND_INSIDE_ONERR:bwn,FST_ERR_BAD_STATUS_CODE:_wn,FST_ERR_BAD_TRAILER_NAME:Twn,FST_ERR_BAD_TRAILER_VALUE:vwn,FST_ERR_MISSING_SERIALIZATION_FN:Awn,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Rwn,FST_ERR_DEC_UNDECLARED:wwn}=Ko(),Ott=vM(),Ftt=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[eg]=null,this[Mtt]=!1,this[ZW]=!1,this[fue]=!1,this.request=t,this[jr]={},this[Zo]=null,this[due]=!1,this[RM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Mn]:{get(){return this.request[Mn]}},elapsedTime:{get(){return this[RM]===void 0?0:(this[lue]||cue())-this[RM]}},server:{get(){return this.request[Mn].server}},sent:{enumerable:!0,get(){return(this[uue]||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[uue]=!0,this.request[Ltt]&&(clearTimeout(this.request[JW]),this.request[JW]=null,this.request[Uk]&&(this.request.raw.removeListener("close",this.request[Uk]),this.request[Uk]=null)),this};Hr.prototype.send=function(e){if(this[fue])throw new bwn;if(this.sent===!0)return this.log.warn({err:new Ewn(this.request.url,this.request.method)}),this;if(this[ZW]||e instanceof Error)return this[ZW]=!1,Fk(this,e,uT),this;if(e===void 0)return uT(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"||Ftt.call(e)==="[object Response]")return uT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=oue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return uT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=oue.PLAIN,uT(this,e),this}if(this[eg]!==null){if(typeof e!="string")return Ntt(this,e),this;e=this[eg](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=oue.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 Ntt(this,e),this}return uT(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 kwn=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(),kwn.has(e))throw new Twn(e);if(typeof t!="function")throw new vwn(e,typeof t);return this[Zo]===null&&(this[Zo]={}),this[Zo][e]=t,this};Hr.prototype.hasTrailer=function(e){return this[Zo]?.[e.toLowerCase()]!==void 0};Hr.prototype.removeTrailer=function(e){return this[Zo]===null?this:(this[Zo][e.toLowerCase()]=void 0,this)};Hr.prototype.code=function(e){let t=+e;if(!(t>=100&&t<=599))throw new _wn(e||String(e));return this.raw.statusCode=t,this[due]=!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][YW]?.[e]?.[t]:n=this[Mn][YW]?.[e]:typeof e=="object"&&(n=this[Mn][YS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Mn][YS]?.has(e))return this[Mn][YS].get(e);let a=(this[Mn].serializerCompiler||this.server[sue].serializerCompiler||this.server[sue].setupSerializer(this.server[lwn])||this.server[sue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Mn][YS]==null&&(this[Mn][YS]=new WeakMap),this[Mn][YS].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][YW]?.[n]?.[r]:s=this[Mn][YW]?.[n],s==null)throw r?new Rwn(n,r):new Awn(n)}else this[Mn][YS]?.has(t)?s=this[Mn][YS].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][KW]?this[Mn][KW](e,this.raw.statusCode):Htt(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[due]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return Dwn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}WW(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(!Ott.hasKey(this,e)&&!Ott.exist(this,e))throw new wwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function Ntt(e,t){e[Mn].preSerialization!==null?pwn(e[Mn].preSerialization,e.request,e,t,Ptt):Ptt(null,void 0,e,t)}function Ptt(e,t,n,r){if(e!=null){Fk(n,e);return}try{n[eg]!==null?r=n[eg](r):n[Mn]&&n[Mn][KW]?r=n[Mn][KW](r,n.raw.statusCode):r=Htt(n[Mn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){Iwn(i,n),Fk(n,i);return}uT(n,r)}function Iwn(e,t){e.serialization=t[Mn].config}function uT(e,t){e[Mn].onSend!==null?Utt(e[Mn].onSend,e.request,e,t,xwn):jtt(e,t)}function xwn(e,t,n,r){e!=null?Fk(n,e):jtt(n,r)}function aue(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[Zo]!==null){let s=Object.keys(e[Zo]),o="";for(let a of s)typeof e[Zo][a]=="function"&&(o+=" ",o+=a);e.header("Transfer-Encoding","chunked"),e.header("Trailer",o.trim())}if(Ftt.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 ywn;t=t.body}let i=n.statusCode;if(t==null){i>=200&&i!==204&&i!==304&&r.method!=="HEAD"&&e[Zo]===null&&(e[jr]["content-length"]="0"),aue(e,i),AM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),aue(e,i),AM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",QW),t.resume());return}if(typeof t.pipe=="function"){Nwn(t,n,e);return}if(typeof t.getReader=="function"){Own(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new gwn(typeof t);if(e[Zo]===null){let s=e[jr]["content-length"];(!s||r.raw.method!=="HEAD"&&Number(s)!==Buffer.byteLength(t))&&(e[jr]["content-length"]=""+Buffer.byteLength(t))}aue(e,i),n.write(t),AM(t,n,e)}function XW(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[Dtt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function Own(e,t,n){if(e.locked)throw new Swn;let r=!0,i=!1,s=!1,o=e.getReader();if(WW(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,XW(n.log,l,t)),o.cancel().catch(QW))}),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,AM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(QW);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,XW(n.log,l,n)),t.destroy()):Fk(n,l)}o.read().then(a,u)}function Nwn(e,t,n){let r=!0,i=!1;if(Pwn(e,t,n),WW(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,XW(n.log,s,n)),t.destroy()):Fk(n,s))}),WW(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,XW(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(QW):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 AM(e,t,n){if(n[Zo]===null){t.end(null,null,null);return}let r=Object.keys(n[Zo]),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[Zo][c]!="function")continue;o=!1,s--;let l=n[Zo][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 Pwn(e,t,n){n[Zo]!==null&&e.on("end",()=>AM(null,t,n))}function Fk(e,t,n){e[Mn].onError!==null&&!e[uwn]?(e[fue]=!0,Utt(e[Mn].onError,e.request,e,t,()=>xtt(e,t,n))):xtt(e,t,n)}function Cwn(e){e[RM]=cue();let t=n=>{e[lue]=cue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Mn];e.request[Ltt]&&(clearTimeout(e.request[JW]),e.request[JW]=null,e.request[Uk]&&(e.request.raw.removeListener("close",e.request[Uk]),e.request[Uk]=null)),r&&r.onResponse!==null?dwn(r.onResponse,e.request,e,Ctt):Ctt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function Ctt(e,t,n){if(n.log[Dtt])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 Mwn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[ZW]=!1,this[Mtt]=!1,this[uue]=!1,this[eg]=null,this.request=i,this[jr]={},this[Zo]=null,this[RM]=void 0,this[lue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function pue(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 Lwn(t,n)}function Lwn(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}tK.exports=pue;tK.exports.default=pue;tK.exports.forwarded=pue});var Gtt=w((Btt,nK)=>{(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 b=p.split(":"),_=[];for(let T=0;T0;){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";jk.exports=hue;jk.exports.default=hue;jk.exports.proxyaddr=hue;jk.exports.all=Wtt;jk.exports.compile=Ktt;var Uwn=qtt(),Vtt=Gtt(),Fwn=/^\d+$/u,rK=Vtt.isValid,iK=Vtt.parse,ztt={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 Wtt(e,t){let n=Uwn(e);if(!t)return n;typeof t!="function"&&(t=Ktt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function Bwn(e){let t=iK(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function hue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=Wtt(e,t);return n[n.length-1]}function Gwn(){return!1}function zwn(e){return function(n){if(!rK(n))return!1;let r=iK(n),i,s=r.kind();for(let o=0;o{"use strict";var sK=Ztt(),{kHasBeenDecorated:Wwn,kSchemaBody:Kwn,kSchemaHeaders:Zwn,kSchemaParams:Ywn,kSchemaQuerystring:Ytt,kSchemaController:mue,kOptions:Jwn,kRequestCacheValidateFns:JS,kRouteContext:sc,kRequestOriginalUrl:gue,kRequestSignal:Jtt,kOnAbort:Xwn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:Qwn,FST_ERR_DEC_UNDECLARED:$wn}=Ko(),Xtt=vM(),Qtt={body:Kwn,headers:Zwn,params:Ywn,querystring:Ytt,query:Ytt};function yue(e,t,n,r,i,s){this.id=e,this[sc]=s,this.params=t,this.raw=n,this.query=r,this.log=i,this.body=void 0}yue.props=[];function ekn(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 sK.compile(t)}return sK.compile(e)}function tkn(e,t){return t?nkn(e,t):tnt(e)}function tnt(e){let t=e.props.slice();function n(r,i,s,o,a,c){this.id=r,this[sc]=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[Xwn]=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=Qtt[e];return this[sc][t]}else if(typeof e=="object")return this[sc][JS]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[sc][JS]?.has(e))return this[sc][JS].get(e);let s=(this[sc].validatorCompiler||this.server[mue].validatorCompiler||this.server[mue].setupValidator(this.server[Jwn])||this.server[mue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[sc][JS]==null&&(this[sc][JS]=new WeakMap),this[sc][JS].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&Qtt[n],i;if(r&&(i=this[sc][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new Qwn(n);return i==null&&(this[sc][JS]?.has(t)?i=this[sc][JS].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){ent(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){ent(this,e),this[e]=t}}});Sue.exports=yue;Sue.exports.buildRequest=tkn});var aK=w((S3r,nnt)=>{"use strict";var{kFourOhFourContext:rkn,kReplySerializerDefault:ikn,kSchemaErrorFormatter:skn,kErrorHandler:okn,kChildLoggerFactory:akn,kOptions:ckn,kReply:ukn,kRequest:lkn,kBodyLimit:dkn,kLogLevel:fkn,kContentTypeParser:pkn,kRouteByFastify:hkn,kRequestCacheValidateFns:mkn,kReplyCacheSerializeFns:gkn,kHandlerTimeout:ykn}=$s();function Skn({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[ukn],this.Request=y[lkn],this.contentTypeParser=y[pkn],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[okn],this.requestIdLogLabel=r||y[ckn].requestIdLogLabel,this.childLoggerFactory=i||y[akn],this._middie=null,this._parserOptions={limit:o||y[dkn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||y[fkn],this.logSerializers=c,this[rkn]=null,this.attachValidation=u,this[ikn]=f,this.schemaErrorFormatter=p||y[skn]||Ekn,this[hkn]=g,this[mkn]=null,this[gkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=E||y[ykn]||0,this.server=y}function Ekn(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))}nnt.exports=Skn});var bue=w((E3r,Hk)=>{"use strict";var bkn=typeof Buffer<"u",rnt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,int=/"(?: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 snt(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),bkn&&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(rnt.test(e)===!1&&int.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(rnt.test(e)===!1)return r}else if(int.test(e)===!1)return r;return ont(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function ont(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 Eue(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return snt(e,t,n)}finally{Error.stackTraceLimit=r}}function _kn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return snt(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Hk.exports=Eue;Hk.exports.default=Eue;Hk.exports.parse=Eue;Hk.exports.safeParse=_kn;Hk.exports.scan=ont});var Rue=w((b3r,IM)=>{"use strict";var{AsyncResource:Tkn}=Z("node:async_hooks"),{FifoMap:unt}=y2(),{parse:vkn}=bue(),kM=Qae(),{kDefaultJsonParse:wM,kContentTypeParser:qk,kBodyLimit:Akn,kRequestPayloadStream:lnt,kState:Tue,kTestInternals:Rkn,kReplyIsError:ant,kRouteContext:wkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:cK,FST_ERR_CTP_EMPTY_TYPE:kkn,FST_ERR_CTP_ALREADY_PRESENT:Ikn,FST_ERR_CTP_INVALID_HANDLER:xkn,FST_ERR_CTP_INVALID_PARSE_TYPE:Okn,FST_ERR_CTP_BODY_TOO_LARGE:cnt,FST_ERR_CTP_INVALID_MEDIA_TYPE:Nkn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:Pkn,FST_ERR_CTP_EMPTY_JSON_BODY:Ckn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:vue,FST_ERR_CTP_INVALID_JSON_BODY:Mkn}=Ko(),{FSTSEC001:Dkn}=xk();function tg(e,t,n){this[wM]=fnt(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new _ue(!0,!1,e,this[wM])),this.customParsers.set("text/plain",new _ue(!0,!1,e,Aue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new unt(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 kkn}else if(!(e instanceof RegExp))throw new cK;if(typeof n!="function")throw new xkn;if(this.existingParser(e))throw new Ikn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new Okn(t.parseAs);let i=new _ue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new kM(e);if(s.isValid===!1)throw new cK;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else qkn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};tg.prototype.hasParser=function(e){if(typeof e=="string")e=new kM(e).toString();else{if(!(e instanceof RegExp))throw new cK;e=e.toString()}return this.customParsers.has(e)};tg.prototype.existingParser=function(e){if(typeof e=="string"){let t=new kM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[wM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==Aue}return this.hasParser(e)};tg.prototype.getParser=function(e){typeof e=="string"&&(e=new kM(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 unt(100)};tg.prototype.remove=function(e){let t;if(typeof e=="string")e=new kM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new cK;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[ant]=!0,r.send(new Nkn);return}let s=new Tkn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){dnt(n,r,r[wkn]._parserOptions,i,o);return}let a=i.fn(n,n[lnt],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[ant]=!0,r.send(u);return}n.body=l,t(n,r)}};function dnt(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 cnt,void 0);return}let c=0,u=s?"":[],l=e[lnt]||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 cnt,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 Pkn,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 fnt(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new Ckn,void 0);return}try{o(null,vkn(s,n))}catch{o(new Mkn,void 0)}}}function Aue(e,t,n){n(null,t)}function _ue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function Lkn(e){let t=new tg;return t[wM]=e[wM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function Ukn(e,t,n){if(this[Tue].started)throw new vue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Akn]),Array.isArray(e)?e.forEach(r=>this[qk].add(r,t,n)):this[qk].add(e,t,n),this}function Fkn(e){return this[qk].hasParser(e)}function jkn(e){if(this[Tue].started)throw new vue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[qk].remove(t);else this[qk].remove(e)}function Hkn(){if(this[Tue].started)throw new vue("removeAllContentTypeParsers");this[qk].removeAll()}function qkn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&Dkn(e.source)}IM.exports=tg;IM.exports.helpers={buildContentTypeParser:Lkn,addContentTypeParser:Ukn,hasContentTypeParser:Fkn,removeContentTypeParser:jkn,removeAllContentTypeParsers:Hkn};IM.exports.defaultParsers={getDefaultJsonParser:fnt,defaultTextParser:Aue};IM.exports[Rkn]={rawBody:dnt}});var ng=w(xM=>{"use strict";Object.defineProperty(xM,"__esModule",{value:!0});xM.checkMetadata=void 0;var Bkn=pn(),Gkn={keyword:"metadata",schemaType:"object",code(e){pnt(e);let{gen:t,schema:n,it:r}=e;if((0,Bkn.alwaysValidSchema)(r,n))return;let i=t.name("valid");e.subschema({keyword:"metadata",jtdMetadata:!0},i),e.ok(i)}};function pnt({it:e,keyword:t},n){if(e.jtdMetadata!==n)throw new Error(`JTD: "${t}" cannot be used in this schema location`)}xM.checkMetadata=pnt;xM.default=Gkn});var uK=w(NM=>{"use strict";Object.defineProperty(NM,"__esModule",{value:!0});NM.hasRef=void 0;var hnt=F_(),OM=xt(),zkn=Km(),mnt=md(),gnt=Nse(),Vkn=ng(),Wkn={keyword:"ref",schemaType:"string",code(e){(0,Vkn.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,OM._)`${n} === null`),t.if((0,OM.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 zkn.default(s.opts.uriResolver,"",r,`No definition ${r}`);wue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=hnt.compileSchema.call(s.self,new hnt.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,gnt.getValidate)(e,f),h=t.const("_errs",mnt.default.errors);(0,gnt.callRef)(e,p,f,f.$async),t.assign(a,(0,OM._)`${h} === ${mnt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,OM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:OM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function wue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&wue(n))return!0}return!1}NM.hasRef=wue;NM.default=Wkn});var Iue=w(kue=>{"use strict";Object.defineProperty(kue,"__esModule",{value:!0});var Kkn=/t|\s/i,Zkn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Ykn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,Jkn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Snt(e,t){let n=e.split(Kkn);return n.length===2&&ynt(n[0])&&Xkn(n[1])||t&&n.length===1&&ynt(n[0])}kue.default=Snt;function ynt(e){let t=Zkn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=Jkn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function Xkn(e){let t=Ykn.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}Snt.code='require("ajv/dist/runtime/timestamp").default'});var Bk=w(XS=>{"use strict";Object.defineProperty(XS,"__esModule",{value:!0});XS.typeErrorParams=XS.typeErrorMessage=XS.typeError=void 0;var Qkn=xt();function $kn(e){return{message:t=>Ent(t,e),params:t=>bnt(t,e)}}XS.typeError=$kn;function Ent({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}XS.typeErrorMessage=Ent;function bnt({parentSchema:e},t){return(0,Qkn._)`{type: ${t}, nullable: ${!!e?.nullable}}`}XS.typeErrorParams=bnt});var xue=w(Gk=>{"use strict";Object.defineProperty(Gk,"__esModule",{value:!0});Gk.intRange=void 0;var yl=xt(),eIn=Iue(),tIn=pn(),nIn=ng(),_nt=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 rIn={message:e=>(0,_nt.typeErrorMessage)(e,e.schema),params:e=>(0,_nt.typeErrorParams)(e,e.schema)};function iIn(e){let{gen:t,data:n,it:r}=e,{timestamp:i,allowDate:s}=r.opts;if(i==="date")return(0,yl._)`${n} instanceof Date `;let o=(0,tIn.useFunc)(t,eIn.default),a=s?(0,yl._)`, true`:yl.nil,c=(0,yl._)`typeof ${n} == "string" && ${o}(${n}${a})`;return i==="string"?c:(0,yl.or)((0,yl._)`${n} instanceof Date`,c)}var sIn={keyword:"type",schemaType:"string",error:rIn,code(e){(0,nIn.checkMetadata)(e);let{data:t,schema:n,parentSchema:r,it:i}=e,s;switch(n){case"boolean":case"string":s=(0,yl._)`typeof ${t} == ${n}`;break;case"timestamp":{s=iIn(e);break}case"float32":case"float64":s=(0,yl._)`typeof ${t} == "number"`;break;default:{let o=n;if(s=(0,yl._)`typeof ${t} == "number" && isFinite(${t}) && !(${t} % 1)`,!i.opts.int32range&&(o==="int32"||o==="uint32"))o==="uint32"&&(s=(0,yl._)`${s} && ${t} >= 0`);else{let[a,c]=Gk.intRange[o];s=(0,yl._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,yl.or)((0,yl._)`${t} === null`,s):s)}};Gk.default=sIn});var Vk=w(zk=>{"use strict";Object.defineProperty(zk,"__esModule",{value:!0});zk.checkNullableObject=zk.checkNullable=void 0;var lK=xt();function Tnt({gen:e,data:t,parentSchema:n},r=lK.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,lK._)`${t} === null`),r=(0,lK.not)(i)):e.let(i,!1),[i,r]}zk.checkNullable=Tnt;function oIn(e,t){let[n,r]=Tnt(e,t);return[n,(0,lK._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}zk.checkNullableObject=oIn});var vnt=w(Oue=>{"use strict";Object.defineProperty(Oue,"__esModule",{value:!0});var QS=xt(),aIn=ng(),cIn=Vk(),uIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,QS._)`{allowedValues: ${e}}`},lIn={keyword:"enum",schemaType:"array",error:uIn,code(e){(0,aIn.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,QS._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,cIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,QS.and)(c,(0,QS.or)(...r.map(l=>(0,QS._)`${n} === ${l}`))),s.nullable&&(a=(0,QS.or)((0,QS._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,QS._)`${a} = ${n} === ${l}`,()=>t.break()))}}};Oue.default=lIn});var Rnt=w(Nue=>{"use strict";Object.defineProperty(Nue,"__esModule",{value:!0});var dIn=pn(),fIn=ya(),Ant=xt(),pIn=ng(),hIn=Vk(),mIn=Bk(),gIn={keyword:"elements",schemaType:"object",error:(0,mIn.typeError)("array"),code(e){(0,pIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,dIn.alwaysValidSchema)(i,r))return;let[s]=(0,hIn.checkNullable)(e);t.if((0,Ant.not)(s),()=>t.if((0,Ant._)`Array.isArray(${n})`,()=>t.assign(s,(0,fIn.validateArray)(e)),()=>e.error())),e.ok(s)}};Nue.default=gIn});var Cue=w($S=>{"use strict";Object.defineProperty($S,"__esModule",{value:!0});$S.validateProperties=$S.error=void 0;var Pue=ya(),wnt=pn(),rg=xt(),yIn=ng(),SIn=Vk(),knt=Bk(),Wk;(function(e){e.Additional="additional",e.Missing="missing"})(Wk||(Wk={}));$S.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,knt.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,knt.typeErrorParams)(e,"object")}};var EIn={keyword:"properties",schemaType:"object",error:$S.error,code:Int};function Int(e){(0,yIn.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,SIn.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,b=r.optionalProperties;if(!(S&&b))return!1;for(let _ in S)if(Object.prototype.hasOwnProperty.call(b,_))return!0;return!1}function h(S){let b=r[S],_=b?(0,Pue.allSchemaProperties)(b):[];if(i.jtdDiscriminator&&_.some(A=>A===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=_.filter(A=>!(0,wnt.alwaysValidSchema)(i,b[A]));return[_,T]}function m(S,b,_){let T=t.var("valid");for(let R of S)t.if((0,Pue.propertyInData)(t,n,R,i.opts.ownProperties),()=>y(R,b,T),()=>A(R)),e.ok(T);function A(R){_?(t.assign(T,!1),e.error(!1,{propError:Wk.Missing,missingProperty:R},{schemaPath:R})):t.assign(T,!0)}}function y(S,b,_){e.subschema({keyword:b,schemaProp:S,dataProp:S},_)}function g(){t.forIn("key",n,S=>{let b=E(S,a,"properties",i.jtdDiscriminator),_=E(S,u,"optionalProperties"),T=b===!0?_:_===!0?b:(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(b.length>8){let R=(0,wnt.schemaRefOrVal)(i,r[_],_);A=(0,rg.not)((0,Pue.isOwnProperty)(t,R,S)),T!==void 0&&(A=(0,rg.and)(A,(0,rg._)`${S} !== ${T}`))}else if(b.length||T!==void 0){let R=T===void 0?b:[T].concat(b);A=(0,rg.and)(...R.map(x=>(0,rg._)`${S} !== ${x}`))}else A=!0;return A}}$S.validateProperties=Int;$S.default=EIn});var Ont=w(Mue=>{"use strict";Object.defineProperty(Mue,"__esModule",{value:!0});var xnt=Cue(),bIn={keyword:"optionalProperties",schemaType:"object",error:xnt.error,code(e){e.parentSchema.properties||(0,xnt.validateProperties)(e)}};Mue.default=bIn});var Pnt=w(Due=>{"use strict";Object.defineProperty(Due,"__esModule",{value:!0});var lT=xt(),_In=ng(),TIn=Vk(),Nnt=Bk(),dK=yoe(),vIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===dK.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,lT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,Nnt.typeErrorParams)(e,"object")}},AIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:vIn,code(e){(0,_In.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,TIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,lT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,lT._)`${n}${(0,lT.getProperty)(r)}`);t.if((0,lT._)`${l} === undefined`),e.error(!1,{discrError:dK.DiscrError.Tag,tag:l}),t.elseIf((0,lT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:dK.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,lT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:dK.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}}};Due.default=AIn});var Mnt=w(Lue=>{"use strict";Object.defineProperty(Lue,"__esModule",{value:!0});var Cnt=pn(),fK=xt(),RIn=ng(),wIn=Vk(),kIn=Bk(),IIn={keyword:"values",schemaType:"object",error:(0,kIn.typeError)("object"),code(e){(0,RIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,wIn.checkNullableObject)(e,n);(0,Cnt.alwaysValidSchema)(i,r)?t.if((0,fK.not)((0,fK.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,fK.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:Cnt.Type.Str},c),t.if((0,fK.not)(c),l)})}}}};Lue.default=IIn});var Dnt=w(Uue=>{"use strict";Object.defineProperty(Uue,"__esModule",{value:!0});var xIn=ya(),OIn={keyword:"union",schemaType:"array",trackErrors:!0,code:xIn.validateUnion,error:{message:"must match a schema in union"}};Uue.default=OIn});var Lnt=w(Fue=>{"use strict";Object.defineProperty(Fue,"__esModule",{value:!0});var NIn=uK(),PIn=xue(),CIn=vnt(),MIn=Rnt(),DIn=Cue(),LIn=Ont(),UIn=Pnt(),FIn=Mnt(),jIn=Dnt(),HIn=ng(),qIn=["definitions",NIn.default,PIn.default,CIn.default,MIn.default,DIn.default,LIn.default,UIn.default,FIn.default,jIn.default,HIn.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];Fue.default=qIn});var Hnt=w(jue=>{"use strict";Object.defineProperty(jue,"__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},BIn=e=>({optionalProperties:ig(e)}),GIn=e=>({properties:{ref:{type:"string"}},optionalProperties:ig(e)}),zIn=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:ig(e)}),VIn=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:ig(e)}),WIn=e=>({properties:{elements:{ref:"schema"}},optionalProperties:ig(e)}),Fnt=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...ig(e)}}),jnt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...ig(e)}}),KIn=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[Fnt(!1),jnt(!1)]}}}},optionalProperties:ig(e)}),ZIn=e=>({properties:{values:{ref:"schema"}},optionalProperties:ig(e)}),Unt=e=>({metadata:{union:[BIn,GIn,zIn,VIn,WIn,Fnt,jnt,KIn,ZIn].map(t=>t(e))}}),YIn={definitions:{schema:Unt(!1)},...Unt(!0)};jue.default=YIn});var Hue=w(pK=>{"use strict";Object.defineProperty(pK,"__esModule",{value:!0});pK.jtdForms=void 0;pK.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var Bnt=w(Bue=>{"use strict";Object.defineProperty(Bue,"__esModule",{value:!0});var que=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JIn={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function qnt(e){return que.lastIndex=0,'"'+(que.test(e)?e.replace(que,t=>{let n=JIn[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}Bue.default=qnt;qnt.code='require("ajv/dist/runtime/quote").default'});var Znt=w(zue=>{"use strict";Object.defineProperty(zue,"__esModule",{value:!0});var XIn=Hue(),znt=F_(),En=xt(),QIn=Km(),qr=md(),$In=ya(),e0n=uK(),t0n=pn(),n0n=Bnt(),r0n={elements:s0n,values:o0n,discriminator:a0n,properties:Gnt,optionalProperties:Gnt,enum:PM,type:c0n,ref:l0n};function Vnt(e,t){let n=znt.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)``),CM(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}zue.default=Vnt;function CM(e){let t;for(let n of XIn.jtdForms)if(n in e.schema){t=n;break}i0n(e,t?r0n[t]:f0n)}function i0n(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 s0n(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=>{Gue(e,i),CM({...e,schema:n.elements,data:s})}),t.add(qr.default.json,(0,En.str)`]`)}function o0n(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=>Wnt(e,s,n.values,i)),t.add(qr.default.json,(0,En.str)`}`)}function Wnt(e,t,n,r){let{gen:i,data:s}=e;Gue(e,r),PM({...e,data:t}),i.add(qr.default.json,(0,En.str)`:`);let o=i.const("value",(0,En._)`${s}${(0,En.getProperty)(t)}`);CM({...e,schema:n,data:o})}function a0n(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)}`);PM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,En._)`${s} === ${o}`);let a=n.mapping[o];Knt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,En.str)`}`)}function Gnt(e){let{gen:t}=e;t.add(qr.default.json,(0,En.str)`{`),Knt(e),t.add(qr.default.json,(0,En.str)`}`)}function Knt(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,En.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,En.and)((0,En._)`${E} !== undefined`,(0,$In.isOwnProperty)(n,i,g)),()=>{Gue(e,d),m(g,o[g],E)})}r.additionalProperties&&n.forIn("key",i,g=>n.if(y(g,u),()=>Wnt(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,En._)`${i}${(0,En.getProperty)(g)}`)}function m(g,E,S){n.add(qr.default.json,(0,En.str)`${JSON.stringify(g)}:`),CM({...e,schema:E,data:S})}function y(g,E){return E.length?(0,En.and)(...E.map(S=>(0,En._)`${g} !== ${S}`)):!0}}function c0n(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":PM(e);break;case"timestamp":t.if((0,En._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,En._)`'"' + ${r}.toISOString() + '"'`),()=>PM(e));break;default:u0n(e)}}function PM({gen:e,data:t}){e.add(qr.default.json,(0,En._)`${(0,t0n.useFunc)(e,n0n.default)}(${t})`)}function u0n({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 l0n(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 QIn.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,e0n.hasRef)(c))return CM({...e,schema:c});let{root:u}=o,l=Vnt.call(n,new znt.SchemaEnv({schema:c,root:u}),i);t.add(qr.default.json,(0,En._)`${d0n(t,l)}(${r})`)}function d0n(e,t){return t.serialize?e.scopeValue("serialize",{ref:t.serialize}):(0,En._)`${e.scopeValue("wrapper",{ref:t})}.serialize`}function f0n({gen:e,data:t}){e.add(qr.default.json,(0,En._)`JSON.stringify(${t})`)}function Gue({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 Jnt=w(tE=>{"use strict";Object.defineProperty(tE,"__esModule",{value:!0});tE.parseJsonString=tE.parseJsonNumber=tE.parseJson=void 0;var p0n=/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=p0n.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}}}tE.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)-h0n+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-m0n;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 eE.position=t,n;function i(s){eE.position=t,eE.message=s}}tE.parseJsonString=eE;eE.message=void 0;eE.position=0;eE.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var art=w(Que=>{"use strict";Object.defineProperty(Que,"__esModule",{value:!0});var g0n=Hue(),ert=F_(),ht=xt(),y0n=Km(),Dn=md(),S0n=ya(),E0n=uK(),b0n=xue(),Kue=Jnt(),trt=pn(),_0n=Iue(),T0n={elements:w0n,values:k0n,discriminator:x0n,properties:Xnt,optionalProperties:Xnt,enum:N0n,type:O0n,ref:P0n};function nrt(e,t){let n=ert.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:Dn.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,v0n(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}Que.default=nrt;var Wue=(0,ht._)`undefined`;function v0n(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,ht._)`${Dn.default.json}, ${Dn.default.jsonPos}, ${Dn.default.jsonPart}`,!1,()=>{t.let(Dn.default.data),t.let(r),t.assign((0,ht._)`${n}.message`,Wue),t.assign((0,ht._)`${n}.position`,Wue),t.assign(Dn.default.jsonPos,(0,ht._)`${Dn.default.jsonPos} || 0`),t.const(Dn.default.jsonLen,(0,ht._)`${Dn.default.json}.length`),hK(e),Xue(e),t.if(Dn.default.jsonPart,()=>{t.assign((0,ht._)`${n}.position`,Dn.default.jsonPos),t.return(Dn.default.data)}),t.if((0,ht._)`${Dn.default.jsonPos} === ${Dn.default.jsonLen}`,()=>t.return(Dn.default.data)),Kk(e)})}function hK(e){let t;for(let n of g0n.jtdForms)if(n in e.schema){t=n;break}t?R0n(e,T0n[t]):Yue(e)}var A0n=$nt(!0,$nt(!1,Kk));function R0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);MM(e,"null",t,()=>n.assign(i,null))}function w0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,ht._)`[]`),Zue(e,"]",()=>{let s=t.let("el");hK({...e,schema:n.elements,data:s}),t.assign((0,ht._)`${r}[${i}++]`,s)})}function k0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,ht._)`{}`),Zue(e,"}",()=>I0n(e,n.values))}function Zue(e,t,n){rrt(e,t,n),Ah(e,t)}function rrt(e,t,n){let{gen:r}=e;r.for((0,ht._)`;${Dn.default.jsonPos}<${Dn.default.jsonLen} && ${mK(1)}!==${t};`,()=>{n(),MM(e,",",()=>r.break(),i)});function i(){MM(e,t,()=>{},Kk)}}function I0n(e,t){let{gen:n}=e,r=n.let("key");dT({...e,data:r}),Ah(e,":"),srt(e,r,t)}function x0n(e){let{gen:t,data:n,schema:r}=e,{discriminator:i,mapping:s}=r;Ah(e,"{"),t.assign(n,(0,ht._)`{}`);let o=t.const("pos",Dn.default.jsonPos),a=t.let("value"),c=t.let("tag");rrt(e,"}",()=>{let u=t.let("key");dT({...e,data:u}),Ah(e,":"),t.if((0,ht._)`${u} === ${i}`,()=>{dT({...e,data:c}),t.assign((0,ht._)`${n}[${u}]`,c),t.break()},()=>Yue({...e,data:a}))}),t.assign(Dn.default.jsonPos,o),t.if((0,ht._)`${c} === undefined`),ag(e,(0,ht.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,ht._)`${c} === ${u}`),irt({...e,schema:s[u]},i);t.else(),ag(e,(0,ht.str)`discriminator value not in schema`),t.endIf()}function Xnt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,ht._)`{}`),irt(e)}function irt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(Zue(e,"}",()=>{let c=n.let("key");if(dT({...e,data:c}),Ah(e,":"),n.if(!1),Qnt(e,c,s),Qnt(e,c,o),t){n.elseIf((0,ht._)`${c} === ${t}`);let u=n.let("tag");dT({...e,data:u})}n.else(),a?Yue({...e,data:(0,ht._)`${i}[${c}]`}):ag(e,(0,ht.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,S0n.hasPropFunc)(n),u=(0,ht.and)(...Object.keys(s).map(l=>(0,ht._)`${c}.call(${i}, ${l})`));n.if((0,ht.not)(u),()=>ag(e,(0,ht.str)`missing required properties`))}}function Qnt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,ht._)`${t} === ${i}`),srt(e,t,n[i])}function srt(e,t,n){hK({...e,schema:n,data:(0,ht._)`${e.data}[${t}]`})}function O0n(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":A0n(e);break;case"string":dT(e);break;case"timestamp":{dT(e);let s=(0,trt.useFunc)(t,_0n.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,()=>ag(e,(0,ht.str)`invalid timestamp`));break}case"float32":case"float64":Vue(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))Vue(e,16),s==="uint32"&&t.if((0,ht._)`${r} < 0`,()=>ag(e,(0,ht.str)`integer out of range`));else{let[o,a,c]=b0n.intRange[s];Vue(e,c),t.if((0,ht._)`${r} < ${o} || ${r} > ${a}`,()=>ag(e,(0,ht.str)`integer out of range`))}}}}function dT(e){Ah(e,'"'),Jue(e,Kue.parseJsonString)}function N0n(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,ht._)`${mK(o.length)} === ${o}`),t.assign(n,(0,ht.str)`${s}`),t.add(Dn.default.jsonPos,o.length)}t.else(),Kk(e),t.endIf()}function Vue(e,t){let{gen:n}=e;Xue(e),n.if((0,ht._)`"-0123456789".indexOf(${mK(1)}) < 0`,()=>Kk(e),()=>Jue(e,Kue.parseJsonNumber,t))}function $nt(e,t){return n=>{let{gen:r,data:i}=n;MM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function P0n(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new y0n.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,E0n.hasRef)(a))return hK({...e,schema:a});let{root:c}=s,u=nrt.call(n,new ert.SchemaEnv({schema:a,root:c}),r);ort(e,C0n(t,u),!0)}function C0n(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,ht._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function Yue(e){Jue(e,Kue.parseJson)}function Jue(e,t,n){ort(e,(0,trt.useFunc)(e.gen,t),n)}function ort(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,ht._)`${t}(${Dn.default.json}, ${Dn.default.jsonPos}${n?(0,ht._)`, ${n}`:ht.nil})`),r.assign(Dn.default.jsonPos,(0,ht._)`${t}.position`),r.if((0,ht._)`${i} === undefined`,()=>ag(e,(0,ht._)`${t}.message`))}function Ah(e,t){MM(e,t,Kk)}function MM(e,t,n,r){let{gen:i}=e,s=t.length;Xue(e),i.if((0,ht._)`${mK(s)} === ${t}`,()=>{i.add(Dn.default.jsonPos,s),r?.(e)},()=>n(e))}function Xue({gen:e,char:t}){e.code((0,ht._)`while((${t}=${Dn.default.json}[${Dn.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Dn.default.jsonPos}++;`)}function mK(e){return e===1?(0,ht._)`${Dn.default.json}[${Dn.default.jsonPos}]`:(0,ht._)`${Dn.default.json}.slice(${Dn.default.jsonPos}, ${Dn.default.jsonPos}+${e})`}function Kk(e){ag(e,(0,ht._)`"unexpected token " + ${Dn.default.json}[${Dn.default.jsonPos}]`)}function ag({gen:e,parseName:t},n){e.assign((0,ht._)`${t}.message`,n),e.assign((0,ht._)`${t}.position`,Dn.default.jsonPos),e.return(Wue)}});var tle=w((Ei,ele)=>{"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 M0n=xse(),D0n=Lnt(),L0n=Hnt(),U0n=Znt(),F0n=art(),$ue="JTD-meta-schema",Zk=class extends M0n.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(D0n.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(L0n.default,$ue,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema($ue)?$ue: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(U0n.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(F0n.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};Ei.Ajv=Zk;ele.exports=Ei=Zk;ele.exports.Ajv=Zk;Object.defineProperty(Ei,"__esModule",{value:!0});Ei.default=Zk;var j0n=tk();Object.defineProperty(Ei,"KeywordCxt",{enumerable:!0,get:function(){return j0n.KeywordCxt}});var Yk=xt();Object.defineProperty(Ei,"_",{enumerable:!0,get:function(){return Yk._}});Object.defineProperty(Ei,"str",{enumerable:!0,get:function(){return Yk.str}});Object.defineProperty(Ei,"stringify",{enumerable:!0,get:function(){return Yk.stringify}});Object.defineProperty(Ei,"nil",{enumerable:!0,get:function(){return Yk.nil}});Object.defineProperty(Ei,"Name",{enumerable:!0,get:function(){return Yk.Name}});Object.defineProperty(Ei,"CodeGen",{enumerable:!0,get:function(){return Yk.CodeGen}});var H0n=_C();Object.defineProperty(Ei,"ValidationError",{enumerable:!0,get:function(){return H0n.default}});var q0n=Km();Object.defineProperty(Ei,"MissingRefError",{enumerable:!0,get:function(){return q0n.default}})});var nle=w((q3r,crt)=>{"use strict";var B0n=zV();crt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:B0n,addUsedSchema:!1,allErrors:!1})});var drt=w((B3r,lrt)=>{"use strict";var G0n=B_().default,z0n=tle(),urt=nle(),rle=class{constructor(t,n){n.mode==="JTD"?this.ajv=new z0n(Object.assign({},urt,n.customOptions)):this.ajv=new G0n(Object.assign({},urt,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&&a2()(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)}};lrt.exports=rle});var prt=w((G3r,frt)=>{"use strict";var V0n=tle(),W0n=nle(),ile=class{constructor(t,n){this.ajv=new V0n(Object.assign({},W0n,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};frt.exports=ile});var grt=w((LM,mrt)=>{"use strict";Object.defineProperty(LM,"__esModule",{value:!0});var DM=xV(),Of=Kw();function hrt(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,Of._)`"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,Of._)`export const ${(0,Of.getEsmExportName)(f)}`:(0,Of._)`exports${(0,Of.getProperty)(f)}`;d=(0,Of._)`${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)===DM.UsedValueState.Completed)return Of.nil;p(c.validateName,DM.UsedValueState.Started);let u=e.scope.scopeCode(c.scopeValues,a,d),l=new Of._Code(`${u}${n}${c.validateCode}`);return c.evaluated?(0,Of._)`${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?DM.varKinds.var:DM.varKinds.const,b=(0,Of._)`${S} ${h} = {validate: ${E}};`;if(f(E)===DM.UsedValueState.Started)return b;let _=o(a,g?.source);return(0,Of._)`${b}${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:y}=h;(a[y]=a[y]||new Map).set(h,m)}}}mrt.exports=LM=hrt;Object.defineProperty(LM,"__esModule",{value:!0});LM.default=hrt});var Ert=w((z3r,Srt)=>{"use strict";var yrt=sle(),K0n=grt().default;function Z0n(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=yrt();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=K0n(s[yrt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}Srt.exports=Z0n});var sle=w((V3r,Jk)=>{"use strict";var _rt=Symbol.for("fastify.ajv-compiler.reference"),Y0n=drt(),J0n=prt();function ole(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=brt({},s);if(n.has(o))return n.get(o);let a=new J0n(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=brt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new Y0n(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[_rt]=a),c}}function brt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}Jk.exports=ole;Jk.exports.default=ole;Jk.exports.AjvCompiler=ole;Jk.exports.AjvReference=_rt;Jk.exports.StandaloneValidator=Ert()});var gK=w(Art=>{var Trt=Object.prototype.hasOwnProperty;function vrt(e,t,n){for(n of e.keys())if(UM(n,t))return n}function UM(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--&&UM(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=vrt(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=vrt(t,i),!i)||!UM(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(Trt.call(e,n)&&++r&&!Trt.call(t,n)||!(n in t)||!UM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}Art.dequal=UM});var Irt=w((K3r,krt)=>{"use strict";var{dequal:Rrt}=gK(),X0n=Symbol.for("json-schema-ref"),ale=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]:wrt(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]:wrt(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[X0n]=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(Rrt(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&&Rrt(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 wrt(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}krt.exports={RefResolver:ale}});var ule=w((Z3r,xrt)=>{"use strict";var Q0n=B_(),$0n=zV(),exn=a2(),txn=qW()({proto:!0}),cle=class e{constructor(t){this.ajv=new Q0n({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:$0n}),exn(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=txn(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}};xrt.exports=cle});var Nrt=w((Y3r,Ort)=>{"use strict";var lle=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}};Ort.exports=lle});var Lrt=w((J3r,fle)=>{"use strict";fle.exports=qe;fle.exports.default=qe;var nxn={$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},Prt={enum:["array","boolean","integer","null","number","object","string"]},Crt=/^(?:[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,rxn=s2().fullFormats.uri,Mrt=s2().fullFormats.regex;function vd(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))?(vd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(vd.errors=s,o===0):(vd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var dle={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=b===o}else var a=!0;if(a){if(e.maximum!==void 0){let S=e.maximum,b=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=b===o}else var a=!0;if(a){if(e.exclusiveMaximum!==void 0){let S=e.exclusiveMaximum,b=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=b===o}else var a=!0;if(a){if(e.minimum!==void 0){let S=e.minimum,b=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=b===o}else var a=!0;if(a){if(e.exclusiveMinimum!==void 0){let S=e.exclusiveMinimum,b=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=b===o}else var a=!0;if(a){if(e.maxLength!==void 0){let S=e.maxLength,b=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=b===o}else var a=!0;if(a){if(e.minLength!==void 0){let S=o;vd(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?vd.errors:s.concat(vd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.pattern!==void 0){let S=e.pattern,b=o;if(o===b&&o===b)if(typeof S=="string"){if(!Mrt(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=b===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,b=o,_=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=_,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=b===o}else var a=!0;if(a){if(e.maxItems!==void 0){let S=e.maxItems,b=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=b===o}else var a=!0;if(a){if(e.minItems!==void 0){let S=o;vd(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?vd.errors:s.concat(vd.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,b=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=b===o}else var a=!0;if(a){if(e.minProperties!==void 0){let S=o;vd(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?vd.errors:s.concat(vd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.required!==void 0){let S=e.required,b=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 N=S[R];if(typeof N=="string"){if(typeof k[N]=="number"){return x=k[N],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[N]=R}}}}}else return qe.errors=[{instancePath:t+"/required",schemaPath:"#/definitions/stringArray/type",keyword:"type",params:{type:"array"},message:"must be array"}],!1;var a=b===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,b=o;if(o===b)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=b===o}else var a=!0;if(a){if(e.properties!==void 0){let S=e.properties,b=o;if(o===b)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=b===o}else var a=!0;if(a){if(e.patternProperties!==void 0){let S=e.patternProperties,b=o;if(o===b)if(S&&typeof S=="object"&&!Array.isArray(S)){for(let T in S){let A=o;if(o===A&&typeof T=="string"&&!Mrt(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=b===o}else var a=!0;if(a){if(e.dependencies!==void 0){let S=e.dependencies,b=o;if(o===b)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let A=S[T],R=o,x=o,k=!1,N=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=N===o;if(k=k||h,!k){let P=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=P===o;k=k||h}if(k)o=x,s!==null&&(x?s.length=x: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++,qe.errors=s,!1}var y=R===o;if(!y)break}else return qe.errors=[{instancePath:t+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=b===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,b=o;if(o===b)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(Drt(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=b===o}else var a=!0;if(a){if(e.type!==void 0){let S=e.type,b=o,_=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:Prt.enum},message:"must be equal to one of the allowed values"};s===null?s=[x]:s.push(x),o++}var g=A===o;if(T=T||g,!T){let x=o;if(o===x)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(C=P;C--;)if(Drt(S[P],S[C])){let F={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/uniqueItems",keyword:"uniqueItems",params:{i:P,j:C},message:"must NOT have duplicate items (items ## "+C+" and "+P+" are identical)"};s===null?s=[F]:s.push(F),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=x===o;T=T||g}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=b===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 gle=w((X3r,Urt)=>{"use strict";var ple=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}},hle=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}},mle=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};Urt.exports={MergeError:ple,ResolverNotFoundError:hle,InvalidOnConflictOptionError:mle}});var Hrt=w((Q3r,jrt)=>{"use strict";var{dequal:ixn}=gK(),{MergeError:yle}=gle();function Frt(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function sxn(e,t,n){let r=Frt(t);if(r.length===0)throw new yle(e,t);n[e]=r}function oxn(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 dxn(e,t,n){let r=t[0];for(let i=1;i{"use strict";var{dequal:mxn}=gK(),Xi=Hrt(),EK=gle(),Grt={$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:_xn,patternProperties:SK,additionalProperties:yK,items:Sxn,additionalItems:Exn,definitions:SK,$defs:SK,nullable:Xi.booleanAnd,oneOf:qrt,anyOf:qrt,allOf:Xi.arraysUnion,not:yK,if:Txn,then:Xi.skip,else:Xi.skip,dependencies:Brt,dependentRequired:Brt,dependentSchemas:SK,propertyNames:yK,uniqueItems:Xi.booleanOr,contains:yK};function yK(e,t,n,r,i){n[e]=Nf(t,i)}function gxn(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=gxn(t),o=[];for(let a of s)try{let c=Nf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof EK.MergeError)continue;throw c}n[e]=o}function yxn(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:Axn}=Wrt();function Rxn(e){return Axn(e,{onConflict:"skip"})}Krt.exports=Rxn});var Yrt=w((t4r,Sle)=>{"use strict";function wxn(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 @@ ${E}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null"; ${i} - module.exports = ${e.toString()}(validator, serializer)`}Sle.exports=wxn;Sle.exports.dependencies={Serializer:GW(),Validator:ule()}});var iit=w((n4r,Xk)=>{"use strict";var{RefResolver:kxn}=Irt(),Ixn=GW(),xxn=ule(),fT=Nrt(),Jrt=Lrt(),Oxn=Zrt(),Nxn=/'/g,FM=2e4,bK="default",Pxn=` + 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,8 +157,8 @@ const { const asInteger = serializer.asInteger.bind(serializer) -`,Cxn=new Set(["floor","ceil","round","trunc"]),eit=new Set(["default","json-stringify"]),jM=0;function Ele(e,t){if(!Jrt(e)){t?t=`"${t}" `:t="";let n=Jrt.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=Ele.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 fT(o,i,s);return o.$ref!==void 0?cg(e,a):a}function _K(e,t){let n=e.refResolver.getSchema(t,"#");return new fT(n,t,"#")}function Xrt(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function HM(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function _le(e,t){Ele(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new kxn,rootSchemaId:e.$id||`__fjs_root_${jM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=Xrt(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=Xrt(d,l);n.refResolver.hasSchema(f)||(Ele(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!Cxn.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(eit.has(t.largeArrayMechanism))bK=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)))FM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))FM=t.largeArraySize;else if(l==="bigint")FM=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 fT(e,n.rootSchemaId);Gxn(n,i);let s=oc(n,i,"input"),o=` - ${Pxn} +`,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 = '}' const JSON_STR_BEGIN_ARRAY = '[' @@ -184,9 +184,9 @@ const asInteger = serializer.asInteger.bind(serializer) ${n.functions.join(` `)} return main - `;let a=new Ixn(t),c=new xxn(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 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"?Yrt()(u,n,a,c):u(c,a)}var Mxn=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],Dxn=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],Lxn=["maxLength","minLength","pattern"],Uxn=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function Fxn(e){for(let t of Mxn)if(t in e)return"object";for(let t of Dxn)if(t in e)return"array";for(let t of Lxn)if(t in e)return"string";for(let t of Uxn)if(t in e)return"number";return e.type}function jxn(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(" || ")+" ||":""} @@ -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 - ${oc(e,f,"value")} + ${cc(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 - ${oc(e,d,"value")} + ${cc(e,d,"value")} `}return o+=` } - `,o}function Qrt(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;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=cg(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=ug(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+":")} - ${oc(e,f,`${h}`)} + ${cc(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+=jxn(e,t,u,n)),a+=` +`}}return(r.patternProperties||r.additionalProperties)&&(a+=tOn(e,t,u,n)),a+=` json += JSON_STR_END_OBJECT - `,a}function TK(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.\`) } - `),bK==="json-stringify"&&(m+=`if (arrayLength >= ${FM}) 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 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=HM(e,t),d=`obj_${e.uid++}`,f=` + }`,e.functions.push(m),`json += ${p}(${n})`}e.buildingSet.add(r);let l=KM(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.\`) } - `),bK==="json-stringify"&&(f+=`if (arrayLength_${d} >= ${FM}) 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;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 - `,bK==="json-stringify"&&(f+="}"),f+="}",e.buildingSet.delete(r),f}function ble(e,t){let n;switch(e){case"null":n=`${t} === null`;break;case"string":n=`typeof ${t} === 'string' || + `,C4==="json-stringify"&&(f+="}"),f+="}",e.buildingSet.delete(r),f}function Cle(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=>ble(i,t)).join(" || ")})`)}return n}function nit(e){return"anonymous"+e.functionsCounter++}function Bxn(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=rit(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 '${HM(e,t)}' does not match schema definition.\`) - `,s}function rit(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 @@ -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 Hxn(e,t,n);case"array":return qxn(e,t,n);case void 0:return`json += JSON.stringify(${n})`;default:throw new Error(`${r.type} unsupported`)}}function Gxn(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=cg(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 Zxn=iit();function sit(){return function(t,n){let r=Object.assign({},n,{schema:t});return Yxn.bind(null,r)}}function Yxn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),Zxn(t,e)}function oit(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=sit();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)}}}vK.exports.SerializerSelector=sit;vK.exports.StandaloneSerializer=oit;vK.exports.default=oit});var cit=w((i4r,qM)=>{"use strict";var{SerializerSelector:Tle,StandaloneSerializer:Jxn}=ait();qM.exports=Tle;qM.exports.default=Tle;qM.exports.SerializerSelector=Tle;qM.exports.StandaloneSerializer=Jxn});var vle=w((s4r,uit)=>{"use strict";var{buildSchemas:Xxn}=EM();function Qxn(e,t){if(e)return new Qk(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=cit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||Xxn,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=Qxn;uit.exports=Qk});var BM=w((o4r,lit)=>{"use strict";var $xn="2.0.0",eOn=Number.MAX_SAFE_INTEGER||9007199254740991,tOn=16,nOn=250,rOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];lit.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:tOn,MAX_SAFE_BUILD_LENGTH:nOn,MAX_SAFE_INTEGER:eOn,RELEASE_TYPES:rOn,SEMVER_SPEC_VERSION:$xn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var GM=w((a4r,dit)=>{"use strict";var iOn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};dit.exports=iOn});var $k=w((Rh,fit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Ale,MAX_SAFE_BUILD_LENGTH:sOn,MAX_LENGTH:oOn}=BM(),aOn=GM();Rh=fit.exports={};var cOn=Rh.re=[],uOn=Rh.safeRe=[],et=Rh.src=[],lOn=Rh.safeSrc=[],tt=Rh.t={},dOn=0,Rle="[a-zA-Z0-9-]",fOn=[["\\s",1],["\\d",oOn],[Rle,sOn]],pOn=e=>{for(let[t,n]of fOn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},on=(e,t,n)=>{let r=pOn(t),i=dOn++;aOn(e,i,t),tt[e]=i,et[i]=t,lOn[i]=r,cOn[i]=new RegExp(t,n?"g":void 0),uOn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Rle}*`);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",`${Rle}+`);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,${Ale}})(?:\\.(\\d{1,${Ale}}))?(?:\\.(\\d{1,${Ale}}))?`);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 AK=w((c4r,pit)=>{"use strict";var hOn=Object.freeze({loose:!0}),mOn=Object.freeze({}),gOn=e=>e?typeof e!="object"?hOn:e:mOn;pit.exports=gOn});var wle=w((u4r,git)=>{"use strict";var hit=/^[0-9]+$/,mit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:emit(t,e);git.exports={compareIdentifiers:mit,rcompareIdentifiers:yOn}});var ac=w((l4r,Sit)=>{"use strict";var RK=GM(),{MAX_LENGTH:yit,MAX_SAFE_INTEGER:wK}=BM(),{safeRe:kK,t:IK}=$k(),SOn=AK(),{compareIdentifiers:kle}=wle(),Ile=class e{constructor(t,n){if(n=SOn(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>yit)throw new TypeError(`version is longer than ${yit} characters`);RK("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?kK[IK.LOOSE]:kK[IK.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>wK||this.major<0)throw new TypeError("Invalid major version");if(this.minor>wK||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>wK||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(RK("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 kle(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(RK("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 kle(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?kK[IK.PRERELEASELOOSE]:kK[IK.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]),kle(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}};Sit.exports=Ile});var pT=w((d4r,bit)=>{"use strict";var Eit=ac(),EOn=(e,t,n=!1)=>{if(e instanceof Eit)return e;try{return new Eit(e,t)}catch(r){if(!n)return null;throw r}};bit.exports=EOn});var Tit=w((f4r,_it)=>{"use strict";var bOn=pT(),_On=(e,t)=>{let n=bOn(e,t);return n?n.version:null};_it.exports=_On});var Ait=w((p4r,vit)=>{"use strict";var TOn=pT(),vOn=(e,t)=>{let n=TOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};vit.exports=vOn});var kit=w((h4r,wit)=>{"use strict";var Rit=ac(),AOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new Rit(e instanceof Rit?e.version:e,n).inc(t,r,i).version}catch{return null}};wit.exports=AOn});var Oit=w((m4r,xit)=>{"use strict";var Iit=pT(),ROn=(e,t)=>{let n=Iit(e,null,!0),r=Iit(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"};xit.exports=ROn});var Pit=w((g4r,Nit)=>{"use strict";var wOn=ac(),kOn=(e,t)=>new wOn(e,t).major;Nit.exports=kOn});var Mit=w((y4r,Cit)=>{"use strict";var IOn=ac(),xOn=(e,t)=>new IOn(e,t).minor;Cit.exports=xOn});var Lit=w((S4r,Dit)=>{"use strict";var OOn=ac(),NOn=(e,t)=>new OOn(e,t).patch;Dit.exports=NOn});var Fit=w((E4r,Uit)=>{"use strict";var POn=pT(),COn=(e,t)=>{let n=POn(e,t);return n&&n.prerelease.length?n.prerelease:null};Uit.exports=COn});var Ad=w((b4r,Hit)=>{"use strict";var jit=ac(),MOn=(e,t,n)=>new jit(e,n).compare(new jit(t,n));Hit.exports=MOn});var Bit=w((_4r,qit)=>{"use strict";var DOn=Ad(),LOn=(e,t,n)=>DOn(t,e,n);qit.exports=LOn});var zit=w((T4r,Git)=>{"use strict";var UOn=Ad(),FOn=(e,t)=>UOn(e,t,!0);Git.exports=FOn});var xK=w((v4r,Wit)=>{"use strict";var Vit=ac(),jOn=(e,t,n)=>{let r=new Vit(e,n),i=new Vit(t,n);return r.compare(i)||r.compareBuild(i)};Wit.exports=jOn});var Zit=w((A4r,Kit)=>{"use strict";var HOn=xK(),qOn=(e,t)=>e.sort((n,r)=>HOn(n,r,t));Kit.exports=qOn});var Jit=w((R4r,Yit)=>{"use strict";var BOn=xK(),GOn=(e,t)=>e.sort((n,r)=>BOn(r,n,t));Yit.exports=GOn});var zM=w((w4r,Xit)=>{"use strict";var zOn=Ad(),VOn=(e,t,n)=>zOn(e,t,n)>0;Xit.exports=VOn});var OK=w((k4r,Qit)=>{"use strict";var WOn=Ad(),KOn=(e,t,n)=>WOn(e,t,n)<0;Qit.exports=KOn});var xle=w((I4r,$it)=>{"use strict";var ZOn=Ad(),YOn=(e,t,n)=>ZOn(e,t,n)===0;$it.exports=YOn});var Ole=w((x4r,est)=>{"use strict";var JOn=Ad(),XOn=(e,t,n)=>JOn(e,t,n)!==0;est.exports=XOn});var NK=w((O4r,tst)=>{"use strict";var QOn=Ad(),$On=(e,t,n)=>QOn(e,t,n)>=0;tst.exports=$On});var PK=w((N4r,nst)=>{"use strict";var eNn=Ad(),tNn=(e,t,n)=>eNn(e,t,n)<=0;nst.exports=tNn});var Nle=w((P4r,rst)=>{"use strict";var nNn=xle(),rNn=Ole(),iNn=zM(),sNn=NK(),oNn=OK(),aNn=PK(),cNn=(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 nNn(e,n,r);case"!=":return rNn(e,n,r);case">":return iNn(e,n,r);case">=":return sNn(e,n,r);case"<":return oNn(e,n,r);case"<=":return aNn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};rst.exports=cNn});var sst=w((C4r,ist)=>{"use strict";var uNn=ac(),lNn=pT(),{safeRe:CK,t:MK}=$k(),dNn=(e,t)=>{if(e instanceof uNn)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?CK[MK.COERCEFULL]:CK[MK.COERCE]);else{let c=t.includePrerelease?CK[MK.COERCERTLFULL]:CK[MK.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 lNn(`${r}.${i}.${s}${o}${a}`,t)};ist.exports=dNn});var ast=w((M4r,ost)=>{"use strict";var Ple=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}};ost.exports=Ple});var Rd=w((D4r,dst)=>{"use strict";var fNn=/\s+/g,Cle=class e{constructor(t,n){if(n=hNn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Mle)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(fNn," "),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=>!ust(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&&_Nn(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&&ENn)|(this.options.loose&&bNn))+":"+t,i=cst.get(r);if(i)return i;let s=this.options.loose,o=s?Vc[cc.HYPHENRANGELOOSE]:Vc[cc.HYPHENRANGE];t=t.replace(o,NNn(this.options.includePrerelease)),bi("hyphen replace",t),t=t.replace(Vc[cc.COMPARATORTRIM],gNn),bi("comparator trim",t),t=t.replace(Vc[cc.TILDETRIM],yNn),bi("tilde trim",t),t=t.replace(Vc[cc.CARETTRIM],SNn),bi("caret trim",t);let a=t.split(" ").map(d=>TNn(d,this.options)).join(" ").split(/\s+/).map(d=>ONn(d,this.options));s&&(a=a.filter(d=>(bi("loose invalid filter",d,this.options),!!d.match(Vc[cc.COMPARATORLOOSE])))),bi("range list",a);let c=new Map,u=a.map(d=>new Mle(d,this.options));for(let d of u){if(ust(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return cst.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>lst(r,n)&&t.set.some(i=>lst(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 mNn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",_Nn=e=>e.value==="",lst=(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},TNn=(e,t)=>(e=e.replace(Vc[cc.BUILD],""),bi("comp",e,t),e=RNn(e,t),bi("caret",e),e=vNn(e,t),bi("tildes",e),e=kNn(e,t),bi("xrange",e),e=xNn(e,t),bi("stars",e),e),Wc=e=>!e||e.toLowerCase()==="x"||e==="*",vNn=(e,t)=>e.trim().split(/\s+/).map(n=>ANn(n,t)).join(" "),ANn=(e,t)=>{let n=t.loose?Vc[cc.TILDELOOSE]:Vc[cc.TILDE];return e.replace(n,(r,i,s,o,a)=>{bi("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?(bi("replaceTilde pr",a),c=`>=${i}.${s}.${o}-${a} <${i}.${+s+1}.0-0`):c=`>=${i}.${s}.${o} <${i}.${+s+1}.0-0`,bi("tilde return",c),c})},RNn=(e,t)=>e.trim().split(/\s+/).map(n=>wNn(n,t)).join(" "),wNn=(e,t)=>{bi("caret",e,t);let n=t.loose?Vc[cc.CARETLOOSE]:Vc[cc.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{bi("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?(bi("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`):(bi("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`),bi("caret return",u),u})},kNn=(e,t)=>(bi("replaceXRanges",e,t),e.split(/\s+/).map(n=>INn(n,t)).join(" ")),INn=(e,t)=>{e=e.trim();let n=t.loose?Vc[cc.XRANGELOOSE]:Vc[cc.XRANGE];return e.replace(n,(r,i,s,o,a,c)=>{bi("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`),bi("xRange return",r),r})},xNn=(e,t)=>(bi("replaceStars",e,t),e.trim().replace(Vc[cc.STAR],"")),ONn=(e,t)=>(bi("replaceGTE0",e,t),e.trim().replace(Vc[t.includePrerelease?cc.GTE0PRE:cc.GTE0],"")),NNn=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()),PNn=(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 VM=w((L4r,yst)=>{"use strict";var WM=Symbol("SemVer ANY"),Ule=class e{static get ANY(){return WM}constructor(t,n){if(n=fst(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Lle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===WM?this.value="":this.value=this.operator+this.semver.version,Lle("comp",this)}parse(t){let n=this.options.loose?pst[hst.COMPARATORLOOSE]:pst[hst.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 mst(r[2],this.options.loose):this.semver=WM}toString(){return this.value}test(t){if(Lle("Comparator.test",t,this.options.loose),this.semver===WM||t===WM)return!0;if(typeof t=="string")try{t=new mst(t,this.options)}catch{return!1}return Dle(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 gst(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new gst(this.value,n).test(t.semver):(n=fst(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("=")||Dle(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Dle(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};yst.exports=Ule;var fst=AK(),{safeRe:pst,t:hst}=$k(),Dle=Nle(),Lle=GM(),mst=ac(),gst=Rd()});var KM=w((U4r,Sst)=>{"use strict";var CNn=Rd(),MNn=(e,t,n)=>{try{t=new CNn(t,n)}catch{return!1}return t.test(e)};Sst.exports=MNn});var bst=w((F4r,Est)=>{"use strict";var DNn=Rd(),LNn=(e,t)=>new DNn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));Est.exports=LNn});var Tst=w((j4r,_st)=>{"use strict";var UNn=ac(),FNn=Rd(),jNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new FNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new UNn(r,n))}),r};_st.exports=jNn});var Ast=w((H4r,vst)=>{"use strict";var HNn=ac(),qNn=Rd(),BNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new qNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new HNn(r,n))}),r};vst.exports=BNn});var kst=w((q4r,wst)=>{"use strict";var Fle=ac(),GNn=Rd(),Rst=zM(),zNn=(e,t)=>{e=new GNn(e,t);let n=new Fle("0.0.0");if(e.test(n)||(n=new Fle("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new Fle(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||Rst(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||Rst(n,s))&&(n=s)}return n&&e.test(n)?n:null};wst.exports=zNn});var xst=w((B4r,Ist)=>{"use strict";var VNn=Rd(),WNn=(e,t)=>{try{return new VNn(e,t).range||"*"}catch{return null}};Ist.exports=WNn});var DK=w((G4r,Cst)=>{"use strict";var KNn=ac(),Pst=VM(),{ANY:ZNn}=Pst,YNn=Rd(),JNn=KM(),Ost=zM(),Nst=OK(),XNn=PK(),QNn=NK(),$Nn=(e,t,n,r)=>{e=new KNn(e,r),t=new YNn(t,r);let i,s,o,a,c;switch(n){case">":i=Ost,s=XNn,o=Nst,a=">",c=">=";break;case"<":i=Nst,s=QNn,o=Ost,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(JNn(e,t,r))return!1;for(let u=0;u{p.semver===ZNn&&(p=new Pst(">=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};Cst.exports=$Nn});var Dst=w((z4r,Mst)=>{"use strict";var ePn=DK(),tPn=(e,t,n)=>ePn(e,t,">",n);Mst.exports=tPn});var Ust=w((V4r,Lst)=>{"use strict";var nPn=DK(),rPn=(e,t,n)=>nPn(e,t,"<",n);Lst.exports=rPn});var Hst=w((W4r,jst)=>{"use strict";var Fst=Rd(),iPn=(e,t,n)=>(e=new Fst(e,n),t=new Fst(t,n),e.intersects(t,n));jst.exports=iPn});var Bst=w((K4r,qst)=>{"use strict";var sPn=KM(),oPn=Ad();qst.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>oPn(l,d,n));for(let l of o)sPn(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 Gst=Rd(),Hle=VM(),{ANY:jle}=Hle,ZM=KM(),qle=Ad(),aPn=(e,t,n={})=>{if(e===t)return!0;e=new Gst(e,n),t=new Gst(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=uPn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},cPn=[new Hle(">=0.0.0-0")],zst=[new Hle(">=0.0.0")],uPn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===jle){if(t.length===1&&t[0].semver===jle)return!0;n.includePrerelease?e=cPn:e=zst}if(t.length===1&&t[0].semver===jle){if(n.includePrerelease)return!0;t=zst}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=Vst(i,p,n):p.operator==="<"||p.operator==="<="?s=Wst(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=qle(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=Vst(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=Wst(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)},Vst=(e,t,n)=>{if(!e)return t;let r=qle(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},Wst=(e,t,n)=>{if(!e)return t;let r=qle(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};Kst.exports=aPn});var Qst=w((Y4r,Xst)=>{"use strict";var Ble=$k(),Yst=BM(),lPn=ac(),Jst=wle(),dPn=pT(),fPn=Tit(),pPn=Ait(),hPn=kit(),mPn=Oit(),gPn=Pit(),yPn=Mit(),SPn=Lit(),EPn=Fit(),bPn=Ad(),_Pn=Bit(),TPn=zit(),vPn=xK(),APn=Zit(),RPn=Jit(),wPn=zM(),kPn=OK(),IPn=xle(),xPn=Ole(),OPn=NK(),NPn=PK(),PPn=Nle(),CPn=sst(),MPn=VM(),DPn=Rd(),LPn=KM(),UPn=bst(),FPn=Tst(),jPn=Ast(),HPn=kst(),qPn=xst(),BPn=DK(),GPn=Dst(),zPn=Ust(),VPn=Hst(),WPn=Bst(),KPn=Zst();Xst.exports={parse:dPn,valid:fPn,clean:pPn,inc:hPn,diff:mPn,major:gPn,minor:yPn,patch:SPn,prerelease:EPn,compare:bPn,rcompare:_Pn,compareLoose:TPn,compareBuild:vPn,sort:APn,rsort:RPn,gt:wPn,lt:kPn,eq:IPn,neq:xPn,gte:OPn,lte:NPn,cmp:PPn,coerce:CPn,Comparator:MPn,Range:DPn,satisfies:LPn,toComparators:UPn,maxSatisfying:FPn,minSatisfying:jPn,minVersion:HPn,validRange:qPn,outside:BPn,gtr:GPn,ltr:zPn,intersects:VPn,simplifyRange:WPn,subset:KPn,SemVer:lPn,re:Ble.re,src:Ble.src,tokens:Ble.t,SEMVER_SPEC_VERSION:Yst.SEMVER_SPEC_VERSION,RELEASE_TYPES:Yst.RELEASE_TYPES,compareIdentifiers:Jst.compareIdentifiers,rcompareIdentifiers:Jst.rcompareIdentifiers}});var Zle=w((J4r,Kle)=>{"use strict";var Gle=Qst(),Vle=Z("node:assert"),Wle=Symbol.for("registered-plugin"),{kTestInternals:ZPn}=$s(),{exist:YPn,existReply:JPn,existRequest:XPn}=vM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:QPn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:$Pn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:eCn}=Ko(),tCn=/-(?:rc|pre|alpha).+$/u;function YM(e){return e[Symbol.for("plugin-meta")]}function $st(e){let t=eot(e);if(t)return t;let n=Z.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function eot(e){return e[Symbol.for("fastify.display-name")]}function tot(e){return!!e[Symbol.for("skip-override")]}function not(e){let t=YM(e);if(!t)return;let n=t.dependencies;n&&(Vle(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{Vle(this[Wle].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function rot(e){let t=YM(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&zle(this,"Fastify",n.fastify,r),n.reply&&zle(this,"Reply",n.reply,r),n.request&&zle(this,"Request",n.request,r))}var rCn={Fastify:YPn,Request:XPn,Reply:JPn};function zle(e,t,n,r){Vle(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!rCn[t].call(e,i))throw new $Pn(i,s,t)})}function iCn(e){let t=YM(e);if(t?.fastify==null)return;let n=t.fastify,r=tCn.test(this.version);if(!(r===!0&&Gle.gt(this.version,Gle.coerce(n))===!0)&&n&&Gle.satisfies(this.version,n,{includePrerelease:r})===!1)throw new QPn(t.name,n,this.version)}function sCn(e){let t=YM(e);if(!t)return;let n=t.name;if(n)return this[Wle].push(n),n}function oCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new eCn(t)}function aCn(e){let t=sCn.call(this,e)||$st(e);return oCn.call(this,e,t),iCn.call(this,e),rot.call(this,e),not.call(this,e),tot(e)}Kle.exports={getPluginName:$st,getFuncPreview:nCn,kRegisteredPlugins:Wle,getDisplayName:eot,registerPlugin:aCn};Kle.exports[ZPn]={shouldSkipOverride:tot,getMeta:YM,checkDecorators:rot,checkDependencies:not}});var LK=w((Q4r,iot)=>{"use strict";function cCn(e,t){let n=t||lCn();return e?dCn(e,n):n}function uCn(e,t){return e.genReqId(t)}function lCn(){let t=0;return function(){return t=t+1&2147483647,`req-${t.toString(36)}`}}function dCn(e,t){return function(n){return n.headers[e]||t(n)}}iot.exports={getGenReqId:uCn,reqIdGenFactory:cCn}});var cot=w(($4r,aot)=>{"use strict";var sot=12,fCn=0,Yle=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 pCn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=sot;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===fCn)return null;if(t+=3,t{"use strict";var uot=cot(),lot=/\+/g,dot=function(){};dot.prototype=Object.create(null);function mCn(e){let t=new dot;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(lot," ")),a&&(r=uot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(lot," ")),c&&(i=uot(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}fot.exports=mCn});var mot=w((tZr,hot)=>{var wh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),gCn=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 yCn(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:Jle}=mot();function got(e){let t=typeof e;return t==="string"?Jle(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:Jle(""+e):""}function SCn(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 Eot=pot(),bot=Sot(),_ot={parse:Eot,stringify:bot};JM.exports=_ot;JM.exports.default=_ot;JM.exports.parse=Eot;JM.exports.stringify=bot});var Aot=w(vot=>{"use strict";Object.defineProperty(vot,"__esModule",{value:!0})});var Rot=w(XM=>{"use strict";Object.defineProperty(XM,"__esModule",{value:!0});XM.types=void 0;var ECn;(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"})(ECn=XM.types||(XM.types={}))});var kot=w(wot=>{"use strict";Object.defineProperty(wot,"__esModule",{value:!0})});var lg=w(ug=>{"use strict";var bCn=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]})),Xle=ug&&ug.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&bCn(t,e,n)};Object.defineProperty(ug,"__esModule",{value:!0});Xle(Aot(),ug);Xle(Rot(),ug);Xle(kot(),ug)});var UK=w(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});uc.anyChar=uc.notWhitespace=uc.whitespace=uc.notInts=uc.ints=uc.notWords=uc.words=void 0;var hr=lg(),Iot=()=>[{type:hr.types.RANGE,from:48,to:57}],xot=()=>[{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}],Oot=()=>[{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}],_Cn=()=>[{type:hr.types.CHAR,value:10},{type:hr.types.CHAR,value:13},{type:hr.types.CHAR,value:8232},{type:hr.types.CHAR,value:8233}];uc.words=()=>({type:hr.types.SET,set:xot(),not:!1});uc.notWords=()=>({type:hr.types.SET,set:xot(),not:!0});uc.ints=()=>({type:hr.types.SET,set:Iot(),not:!1});uc.notInts=()=>({type:hr.types.SET,set:Iot(),not:!0});uc.whitespace=()=>({type:hr.types.SET,set:Oot(),not:!1});uc.notWhitespace=()=>({type:hr.types.SET,set:Oot(),not:!0});uc.anyChar=()=>({type:hr.types.SET,set:_Cn(),not:!0})});var Pot=w(wd=>{"use strict";var TCn=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]})),vCn=wd&&wd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),ACn=wd&&wd.__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)&&TCn(t,e,n);return vCn(t,e),t};Object.defineProperty(wd,"__esModule",{value:!0});wd.tokenizeClass=wd.strToChars=void 0;var Not=lg(),eI=ACn(UK()),RCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";wd.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?RCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};wd.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: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 Qle=w(kh=>{"use strict";var wCn=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]})),kCn=kh&&kh.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Dot=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)&&wCn(t,e,n);return kCn(t,e),t};Object.defineProperty(kh,"__esModule",{value:!0});kh.tokenizer=void 0;var Cot=Dot(Pot()),Ta=lg(),hT=Dot(UK()),ICn=/^[a-zA-Z_$]$/i,xCn=/^[a-zA-Z0-9_$]$/i,Mot=/\d/;kh.tokenizer=e=>{let t=0,n,r={type:Ta.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=Cot.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:Ta.types.REPETITION,min:f,max:p,value:s.pop()})):s.push({type:Ta.types.CHAR,value:123});break}case"?":s.length===0&&u(t),s.push({type:Ta.types.REPETITION,min:0,max:1,value:s.pop()});break;case"+":s.length===0&&u(t),s.push({type:Ta.types.REPETITION,min:1,max:1/0,value:s.pop()});break;case"*":s.length===0&&u(t),s.push({type:Ta.types.REPETITION,min:0,max:1/0,value:s.pop()});break;default:s.push({type:Ta.types.CHAR,value:n.charCodeAt(0)})}if(o.length!==0)throw new SyntaxError(`Invalid regular expression: /${e}/: Unterminated group`);return OCn(a,c),r};function OCn(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:Ta.types.CHAR,value:o.charCodeAt(0)});n.stack.push(...s)}}}}});var Uot=w(lc=>{"use strict";var NCn=lc&&lc.__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]})),PCn=lc&&lc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),CCn=lc&&lc.__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 PCn(t,e),t};Object.defineProperty(lc,"__esModule",{value:!0});lc.NOTANYCHAR=lc.WHITESPACE=lc.WORDS=lc.INTS=void 0;var FK=CCn(UK()),Lot=lg();function jK(e){let t={},n=0;for(let r of e)r.type===Lot.types.CHAR&&(t[r.value]=!0),r.type===Lot.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}lc.INTS=jK(FK.ints().set);lc.WORDS=jK(FK.words().set);lc.WHITESPACE=jK(FK.whitespace().set);lc.NOTANYCHAR=jK(FK.anyChar().set)});var jot=w(kd=>{"use strict";var MCn=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]})),DCn=kd&&kd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),LCn=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)&&MCn(t,e,n);return DCn(t,e),t};Object.defineProperty(kd,"__esModule",{value:!0});kd.writeSetTokens=kd.setChar=void 0;var GK=lg(),HK=LCn(Uot());function BK(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}kd.setChar=BK;function qK(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===GK.types.SET)return!1;let s=i.type===GK.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function Fot(e,t=!1){if(qK(e.set,HK.INTS))return e.not?"\\D":"\\d";if(qK(e.set,HK.WORDS))return e.not?"\\W":"\\w";if(e.not&&qK(e.set,HK.NOTANYCHAR))return".";if(qK(e.set,HK.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 nE=lg(),$le=jot(),Hot=e=>e.map(tI.reconstruct).join(""),qot=e=>{if("options"in e)return e.options.map(Hot).join("|");if("stack"in e)return Hot(e.stack);throw new Error("options or stack must be Root or Group token")};tI.reconstruct=e=>{switch(e.type){case nE.types.ROOT:return qot(e);case nE.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case nE.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case nE.types.REFERENCE:return`\\${e.value}`;case nE.types.SET:return $le.writeSetTokens(e);case nE.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${qot(e)})`;case nE.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 nE.types.RANGE:return`${$le.setChar(e.from)}-${$le.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var nde=w((Id,zK)=>{"use strict";var FCn=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]})),tde=Id&&Id.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&FCn(t,e,n)};Object.defineProperty(Id,"__esModule",{value:!0});Id.types=void 0;var Bot=lg();Object.defineProperty(Id,"types",{enumerable:!0,get:function(){return Bot.types}});tde(Qle(),Id);tde(ede(),Id);var Got=Qle(),jCn=ede();tde(lg(),Id);Id.default=Got.tokenizer;zK.exports=Got.tokenizer;zK.exports.types=Bot.types;zK.exports.reconstruct=jCn.reconstruct});var zot=w((hZr,VK)=>{"use strict";var HCn=nde(),{types:qCn}=nde();function rde(e,t,n){let r,i,s;if(e.type===qCn.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";Vot.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 Qot=w((gZr,Xot)=>{"use strict";var Wot=yC(),Kot=WK(),Zot=Symbol("treeData");function Yot(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;iJot(t)):typeof e=="symbol"?e.toString():typeof e=="function"?GCn(e):e}function zCn(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(Jot(a));r[o]=c}}return r}function VCn(e){let t="";for(let[n,r]of Object.entries(e))t+=` -\u2022 (${n}) ${r}`;return t}function WCn(e){let t={...e.opts.constraints},n=t[Kot.name];return delete t[Kot.name],{...e,method:n,opts:{constraints:t}}}function KCn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=VCn(e.metaData),t}function ZCn(e){return e.reduce((t,n)=>{for(let r of t)if(Wot(n.opts.constraints,r.opts.constraints)&&Wot(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function YCn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(WCn)),r=r.map(i=>(i.metaData=zCn(i,n),i)),n.method===void 0&&(r=ZCn(r)),r.map(KCn).join(` -${t}`)}function KK(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[Zot]=YCn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))KK(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");KK(i,t,n+s,r)}e.wildcardChild&&KK(e.wildcardChild,t,"*",r)}function JCn(e,t){let n={};return KK(e,n,e.prefix,t),Yot(n)}Xot.exports={prettyPrintTree:JCn}});var tat=w((yZr,eat)=>{"use strict";var $ot=function(){};$ot.prototype=Object.create(null);eat.exports={NullObject:$ot}});var rat=w((SZr,nat)=>{"use strict";var{NullObject:XCn}=tat(),QCn=WK(),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(QCn.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 $Cn=rat(),$K={STATIC:0,PARAMETRIC:1,WILDCARD:2},ZK=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 $Cn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},YK=class extends ZK{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 XK(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 QK,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 eMn=Z("node:assert");function QM(){if(!(this instanceof QM))return new QM;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}QM.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};QM.prototype.get=function(e){return this.store.get(e)};oat.exports={name:"version",mustMatchWhenDerived:!0,storage:QM,validate(e){eMn(typeof e=="string","Version should be a string")}}});var uat=w((_Zr,cat)=>{"use strict";var tMn=Z("node:assert");function nMn(){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)}}}cat.exports={name:"host",mustMatchWhenDerived:!1,storage:nMn,validate(e){tMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var dat=w((TZr,lat)=>{"use strict";var rMn=aat(),iMn=uat(),ode=Z("node:assert"),ade=class{constructor(t){if(this.strategies={version:rMn,host:iMn},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(ode(typeof t.name=="string"&&t.name!=="","strategy.name is required."),ode(t.storage&&typeof t.storage=="function","strategy.storage function is required."),ode(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)}};lat.exports=ade});var pat=w((vZr,fat)=>{"use strict";var sMn=["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"];fat.exports=sMn});var gat=w((AZr,mat)=>{"use strict";function hat(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 oMn(e,t){let n=!1,r=!1,i="";for(let o=1;o{"use strict";var Ls=Z("node:assert"),cMn=Tot(),rI=zot(),lde=yC(),{prettyPrintTree:uMn}=Qot(),{StaticNode:yat,NODE_TYPES:Sat}=sat(),lMn=dat(),nI=pat(),cde=WK(),{safeDecodeURI:Eat,safeDecodeURIComponent:ude}=gat(),bat=/^https?:\/\/.*?\//,mT=/(\/:[^/()]*?)\?(\/?)/,_at=/[.*+?^${}()|[\]\\]/g,Tat=/\/\/+/g;if(!rI(bat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!rI(mT))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!rI(_at))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!rI(Tat))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=dMn,e.querystringParser?(Ls(typeof e.querystringParser=="function","querystringParser must be a function"),this.querystringParser=e.querystringParser):this.querystringParser=t=>t.length===0?{}:cMn.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 lMn(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(mT);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(mT,"$1$2"),l=n.replace(mT,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=e3(n)),this.ignoreTrailingSlash&&(n=t3(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)};_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 yat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new yat(""),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 b=S;;b++){let _=a.charCodeAt(b),T=_===40,A=_===45||_===46,R=_===47||b===a.length;if(T||A||R){let x=a.slice(S,b);if(l.push(x),m=m||T||A,T){let P=Rat(a,b),C=a.slice(b,P+1);this.allowUnsafeRegex||Ls(rI(new RegExp(C)),`The regex '${C}' is not safe!`),E.push(Aat(C)),b=P+1,y=!0}else E.push(y?"(.*?)":`(${g}|(?:(?!${g}).)*)`),y=!1;let k=b;for(;b0,"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(mT);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(mT,"$1$2"),a=n.replace(mT,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=e3(n)),this.ignoreTrailingSlash&&(n=t3(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(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)||!lde(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(bat,"/")),this.ignoreDuplicateSlashes&&(n=e3(n));let s,o,a;try{s=Eat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=t3(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===Sat.STATIC){l+=i.prefix.length;continue}if(i.kind===Sat.WILDCARD){let g=c.slice(l);a&&(g=ude(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=ude(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}};_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[cde.name]=cde;let o=new _i({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[cde.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)":uMn(n,e)};for(let e in nI){if(!nI.hasOwnProperty(e))continue;let t=nI[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(nI,e,t,n)};_i.sanitizeUrlPath=function(t,n){let r=Eat(t,n);return r.shouldDecodeParam?ude(r.path):r.path};_i.removeDuplicateSlashes=e3;_i.trimLastSlash=t3;wat.exports=_i;function vat(e){return e.replace(_at,"\\$&")}function e3(e){return e.indexOf("//")!==-1?e.replace(Tat,"/"):e}function t3(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function Aat(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 Rat(e,t){let n=1;for(;t{"use strict";function fde(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 fMn(e){return e==null?fde:Array.isArray(e)?[...e,fde]:[e,fde]}kat.exports={parseHeadOnSendHandlers:fMn}});var Zat=w((kZr,Kat)=>{"use strict";var pMn=dde(),hMn=aK(),xat=oce(),{onRequestAbortHookRunner:mMn,lifecycleHooks:Oat,preParsingHookRunner:gMn,onTimeoutHookRunner:yMn,onRequestHookRunner:SMn}=WS(),{normalizeSchema:EMn}=EM(),{parseHeadOnSendHandlers:bMn}=Iat(),{compileSchemasForValidation:_Mn,compileSchemasForSerialization:TMn}=nce(),{FST_ERR_SCH_VALIDATION_BUILD:vMn,FST_ERR_SCH_SERIALIZATION_BUILD:AMn,FST_ERR_DUPLICATED_ROUTE:RMn,FST_ERR_INVALID_URL:wMn,FST_ERR_HOOK_INVALID_HANDLER:Nat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:kMn,FST_ERR_ROUTE_DUPLICATED_HANDLER:IMn,FST_ERR_ROUTE_HANDLER_NOT_FN:Pat,FST_ERR_ROUTE_MISSING_HANDLER:xMn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:OMn,FST_ERR_ROUTE_METHOD_INVALID:NMn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:PMn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:CMn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:MMn,FST_ERR_HANDLER_TIMEOUT:DMn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:pde}=Ko(),{kRoutePrefix:LMn,kSupportedHTTPMethods:gde,kLogLevel:UMn,kLogSerializers:Cat,kHooks:Mat,kSchemaController:FMn,kOptions:Dat,kReplySerializerDefault:hde,kReplyIsError:Vat,kRequestPayloadStream:jMn,kDisableRequestLogging:Lat,kSchemaErrorFormatter:HMn,kErrorHandler:Uat,kHasBeenDecorated:Fat,kRequestAcceptVersion:mde,kRouteByFastify:qMn,kRouteContext:jat,kRequestSignal:BMn,kTimeoutTimer:Hat,kOnAbort:GMn}=$s(),{buildErrorHandler:zMn}=bM(),{createChildLogger:VMn}=SM(),{getGenReqId:WMn}=LK(),{FSTDEP022:KMn}=xk(),qat=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function ZMn(e){let t=pMn(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:b,prepareRoute:S,routeHandler:A,closeRoutes:()=>{m=!0},printRoutes:t.prettyPrint.bind(t),addConstraintStrategy:y,hasConstraintStrategy:g,isAsyncConstraint:E,findRoute:_};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:x,options:k,handler:N,isFastify:P}){if(typeof x!="string")throw new wMn(typeof x);if(!N&&typeof k=="function")N=k,k={};else if(N&&typeof N=="function"){if(Object.prototype.toString.call(k)!=="[object Object]")throw new kMn(R,x);if(k.handler)throw typeof k.handler=="function"?new IMn(R,x):new Pat(R,x)}return k=Object.assign({},k,{method:R,url:x,path:x,handler:N||k&&k.handler}),T.call(this,{options:k,isFastify:P})}function b({options:R}){let x=R.method?.toUpperCase()??"";return t.hasRoute(x,R.url||"",R.constraints)}function _(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},N=k.url||k.path||"";if(!k.handler)throw new xMn(k.method,N);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new Pat(k.method,N);Wat(k.bodyLimit),XMn(k.handlerTimeout);let P=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:N,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:N,prefixing:!0,isFastify:x})}else N[0]==="/"&&K.endsWith("/")?$.call(this,{path:N.slice(1),isFastify:x}):$.call(this,{path:N,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[UMn],(this[Cat]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[Cat]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),X===!1)for(let W of this[Mat].onRoute)W.call(this,k);for(let W of Oat)if(k&&W in k){if(Array.isArray(k[W]))for(let ee of k[W]){if(typeof ee!="function")throw new Nat(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 pde}else if(W==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new pde}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new pde}else if(k[W]!==void 0&&typeof k[W]!="function")throw new Nat(W,Object.prototype.toString.call(k[W]))}let q=k.constraints||{},U={...k.config,url:M,method:k.method},D=new hMn({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[hde],validatorCompiler:k.validatorCompiler,serializerCompiler:k.serializerCompiler,exposeHeadRoute:P,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[qMn])throw W.message.includes(`Method '${k.method}' already declared for route`)?new RMn(k.method,k.url):W}if(this.after((W,ee)=>{D.errorHandler=k.errorHandler?zMn(this[Uat],k.errorHandler):this[Uat],D._parserOptions.limit=k.bodyLimit||null,D.logLevel=k.logLevel,D.logSerializers=k.logSerializers,D.attachValidation=k.attachValidation,D[hde]=this[hde],D.schemaErrorFormatter=k.schemaErrorFormatter||this[HMn]||D.schemaErrorFormatter,n.once("preReady",()=>{for(let ie of Oat){let Me=this[Mat][ie].concat(k[ie]||[]).map(Ae=>Ae.bind(this));D[ie]=Me.length?Me:null}for(;!D.Request[Fat]&&D.Request.parent;)D.Request=D.Request.parent;for(;!D.Reply[Fat]&&D.Reply.parent;)D.Reply=D.Reply.parent;if(r.setContext(this,D),k.schema){D.schema=EMn(D.schema,this.initialConfig);let ie=this[FMn],Me=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Me&&ie.setupValidator(this[Dat]);try{let Ae=typeof k?.validatorCompiler=="function"||ie.isCustomValidatorCompiler;_Mn(D,k.validatorCompiler||ie.validatorCompiler,Ae)}catch(Ae){throw new vMn(k.method,M,Ae.message)}k.schema.response&&!k.serializerCompiler&&ie.setupSerializer(this[Dat]);try{TMn(D,k.serializerCompiler||ie.serializerCompiler)}catch(Ae){throw new AMn(k.method,M,Ae.message)}}}),ee(W)}),P&&C&&!F&&!j){let W=bMn(V.onSend);S.call(this,{method:"HEAD",url:B,options:{...V,onSend:W},isFastify:!0})}}}function A(R,x,k,N,P){let C=WMn(N.server,R),F={level:N.logLevel};N.logSerializers&&(F.serializers=N.logSerializers);let V=VMn(N,i,R,C,F);if(V[Lat]=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",$Mn.bind({keepAliveConnections:h,socket:R.socket}))),R.headers[mde]!==void 0&&(R.headers["accept-version"]=R.headers[mde],R.headers[mde]=void 0);let $=new N.Request(C,k,R,P,V,N),B=new N.Reply(x,$,V),X=u?u($):c;V[Lat]=X,X===!1&&V.info({req:$},"incoming request");let G=N.handlerTimeout;if(G>0){let M=new AbortController;$[BMn]=M,$[Hat]=setTimeout(()=>{if(!B.sent){let U=new DMn(G,N.config?.url);M.abort(U),B[Vat]=!0,B.send(U)}},G);let q=()=>{M.signal.aborted||M.abort(),clearTimeout($[Hat])};R.on("close",q),$[GMn]=q}(s===!0||N.onResponse!==null||G>0)&&o(B),N.onRequest!==null?SMn(N.onRequest,$,B,zat):zat(null,$,B),N.onRequestAbort!==null&&R.on("close",()=>{R.aborted&&mMn(N.onRequestAbort,$,YMn.bind(null,B))}),N.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",JMn),$.raw.socket._meta={context:N,request:$,reply:B})}}function YMn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function JMn(){let{context:e,request:t,reply:n}=this._meta;yMn(e.onTimeout,t,n,eDn)}function Bat(e){if(typeof e!="string")throw new NMn;if(e=e.toUpperCase(),!this[gde].bodyless.has(e)&&!this[gde].bodywith.has(e))throw new OMn(e);return e}function Gat(e,t,n){if(this[gde].bodyless.has(e)&&n?.body)throw new PMn(e,t)}function Wat(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new CMn(e)}function XMn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new MMn(e)}function zat(e,t,n){if(n.sent!==!0){if(e!=null){n[Vat]=!0,n.send(e);return}t[jMn]=t.raw,t[jat].preParsing!==null?gMn(t[jat].preParsing,t,n,xat.bind(t.server)):xat.call(t.server,null,t,n)}}function QMn(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&&KMn(r.join(", "));for(let i of qat)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function $Mn(){this.keepAliveConnections.delete(this.socket)}function eDn(){}Kat.exports={buildRouting:ZMn,validateBodyLimitOption:Wat,buildRouterOptions:QMn}});var tct=w((IZr,ect)=>{"use strict";var tDn=dde(),Yat=eK(),Jat=oK(),nDn=aK(),{kRoutePrefix:rDn,kCanSetNotFoundHandler:$M,kFourOhFourLevelInstance:eD,kFourOhFourContext:Ih,kHooks:iDn,kErrorHandler:Xat}=$s(),{lifecycleHooks:sDn}=WS(),{buildErrorHandler:oDn}=bM(),{FST_ERR_NOT_FOUND:aDn}=Ko(),{createChildLogger:Qat}=SM(),{getGenReqId:$at}=LK();function cDn(e){let{logger:t,disableRequestLogging:n}=e,r=tDn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[eD]=f,f[$M]=!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[eD][Ih],g=$at(y.server,h),E=Qat(y,t,h,g),S=new Jat(g,null,h,null,E,y),b=new Yat(m,S,E);i(S,b)}}function c(f,p){let h=Object.assign({},f[Ih]);h.onSend=p.onSend,p[Ih]=h}function u(f,p,h,m){this[$M]===void 0&&(this[$M]=!0),this[Ih]===void 0&&(this[Ih]=null);let y=this,g=this[rDn]||"/";if(this[$M]===!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[eD][$M]=!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 nDn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let E=this[Ih];for(let S of sDn){let b=this[iDn][S].concat(p[S]||[]).map(_=>_.bind(this));E[S]=b.length?b:null}E.errorHandler=p.errorHandler?oDn(this[Xat],p.errorHandler):this[Xat]}),this[Ih]!==null&&f==="/"){Object.assign(this[Ih],g);return}this[eD][Ih]=g,r.all(f+(f.endsWith("/")?"*":"/*"),y,g),r.all(f,y,g)}function d(f,p){let h=this[eD][Ih],m=$at(h.server,f),y=Qat(h,t,f,m);y.info({req:f},"incoming request");let g=new Jat(m,null,f,null,y,h),E=new Yat(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 aDn)}}ect.exports=cDn});var nct=w((xZr,n3)=>{"use strict";n3.exports=qn;n3.exports.default=qn;var uDn={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:{}}}}}},lDn=Object.prototype.hasOwnProperty,dDn=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 y in e)lDn.call(uDn.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 qn.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 _=typeof E,T;if(T===void 0)if(_==="boolean"||E===null||_==="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 _=e.forceCloseConnections,T=o,A=o,R=!1,x=null,k=o;if(typeof _!="string"){let C=typeof _,F;if(F===void 0)if(C=="number"||C=="boolean")F=""+_;else if(_===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&&(_=F,e!==void 0&&(e.forceCloseConnections=F))}if(o===k&&typeof _=="string"&&!dDn.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&&(R=!0,x=0);let N=o;if(typeof _!="boolean"){let C;if(C===void 0)if(_==="false"||_===0||_===null)C=!1;else if(_==="true"||_===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&&(_=C,e!==void 0&&(e.forceCloseConnections=C))}var c=N===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 _=e.maxRequestsPerSocket,T=o;if(!(typeof _=="number"&&!(_%1)&&!isNaN(_)&&isFinite(_))&&_!==null){let R=typeof _,x;if(x===void 0)if(R==="boolean"||_===null||R==="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 R=e.requestTimeout,x=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 qn.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=x===o;if(a){let N=e.handlerTimeout,P=o;if(!(typeof N=="number"&&!(N%1)&&!isNaN(N)&&isFinite(N))){let F=typeof N,V;if(V===void 0)if(F==="boolean"||N===null||F==="string"&&N&&N==+N&&!(N%1))V=+N;else return qn.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 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,ie=o,Me=o,Ae=!1,z=null,J=o;if(typeof U!="boolean"){let _e;if(_e===void 0)if(U==="false"||U===0||U===null)_e=!1;else if(U==="true"||U===1)_e=!0;else{let wt={};s===null?s=[wt]:s.push(wt),o++}_e!==void 0&&(U=_e,e!==void 0&&(e.https=_e))}var u=J===o;u&&(Ae=!0,z=0);let oe=o;if(U!==null){let _e;if(_e===void 0)if(U===""||U===0||U===!1)_e=null;else{let wt={};s===null?s=[wt]:s.push(wt),o++}_e!==void 0&&(U=_e,e!==void 0&&(e.https=_e))}var u=oe===o;if(u&&Ae)Ae=!1,z=[z,1];else{u&&(Ae=!0,z=1);let _e=o;if(o===_e)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=_e===o;u&&Ae?(Ae=!1,z=[z,2]):u&&(Ae=!0,z=2)}if(Ae)o=Me,s!==null&&(Me?s.length=Me:s=null);else{let _e={};s===null?s=[_e]:s.push(_e),o++}var l=ie===o;if(l){let _e={};s===null?s=[_e]:s.push(_e),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 _e=o;e.https=!0;var d=_e===o;j=d}if(!j){let _e={instancePath:t+"/https",schemaPath:"#/properties/https/if",keyword:"if",params:{failingKeyword:"then"},message:'must match "then" schema'};return s===null?s=[_e]:s.push(_e),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 ie;if(ie===void 0)if(j==="false"||j===0||j===null)ie=!1;else if(j==="true"||j===1)ie=!0;else return qn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;ie!==void 0&&(j=ie,e!==void 0&&(e.ignoreDuplicateSlashes=ie))}var a=W===o;if(a){let ie=e.maxParamLength,Me=o;if(!(typeof ie=="number"&&!(ie%1)&&!isNaN(ie)&&isFinite(ie))){let z=typeof ie,J;if(J===void 0)if(z==="boolean"||ie===null||z==="string"&&ie&&ie==+ie&&!(ie%1))J=+ie;else return qn.errors=[{instancePath:t+"/maxParamLength",schemaPath:"#/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;J!==void 0&&(ie=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,_e;if(_e===void 0)if(le=="number"||le=="boolean")_e=""+z;else if(z===null)_e="";else return qn.errors=[{instancePath:t+"/onProtoPoisoning",schemaPath:"#/properties/onProtoPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;_e!==void 0&&(z=_e,e!==void 0&&(e.onProtoPoisoning=_e))}var a=J===o;if(a){let le=e.onConstructorPoisoning,_e=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=_e===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,$u=o,Rs=!1,ab=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 bp={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/0/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};s===null?s=[bp]:s.push(bp),o++}Ii!==void 0&&(sn=Ii,e!==void 0&&(e.requestIdHeader=Ii))}var f=ab===o;if(Rs=Rs||f,!Rs){let Ii=o;if(typeof sn!="string"){let ay=typeof sn,Ar;if(Ar===void 0)if(ay=="number"||ay=="boolean")Ar=""+sn;else if(sn===null)Ar="";else{let Fa={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[Fa]:s.push(Fa),o++}Ar!==void 0&&(sn=Ar,e!==void 0&&(e.requestIdHeader=Ar))}var f=Ii===o;Rs=Rs||f}if(Rs)o=$u,s!==null&&($u?s.length=$u: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,bp=o;if(typeof Ii!="string"){let Ar=typeof Ii,Fa;if(Fa===void 0)if(Ar=="number"||Ar=="boolean")Fa=""+Ii;else if(Ii===null)Fa="";else return qn.errors=[{instancePath:t+"/requestIdLogLabel",schemaPath:"#/properties/requestIdLogLabel/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Fa!==void 0&&(Ii=Fa,e!==void 0&&(e.requestIdLogLabel=Fa))}var a=bp===o;if(a){let Ar=e.http2SessionTimeout,Fa=o;if(!(typeof Ar=="number"&&!(Ar%1)&&!isNaN(Ar)&&isFinite(Ar))){let ru=typeof Ar,_p;if(_p===void 0)if(ru==="boolean"||Ar===null||ru==="string"&&Ar&&Ar==+Ar&&!(Ar%1))_p=+Ar;else return qn.errors=[{instancePath:t+"/http2SessionTimeout",schemaPath:"#/properties/http2SessionTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;_p!==void 0&&(Ar=_p,e!==void 0&&(e.http2SessionTimeout=_p))}var a=Fa===o;if(a){let ru=e.exposeHeadRoutes,_p=o;if(typeof ru!="boolean"){let L;if(L===void 0)if(ru==="false"||ru===0||ru===null)L=!1;else if(ru==="true"||ru===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&&(ru=L,e!==void 0&&(e.exposeHeadRoutes=L))}var a=_p===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 kt=Ee.ignoreTrailingSlash,dn=o;if(typeof kt!="boolean"){let _t;if(_t===void 0)if(kt==="false"||kt===0||kt===null)_t=!1;else if(kt==="true"||kt===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&&(kt=_t,Ee!==void 0&&(Ee.ignoreTrailingSlash=_t))}var p=dn===o;if(p){let _t=Ee.ignoreDuplicateSlashes,na=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,Ee!==void 0&&(Ee.ignoreDuplicateSlashes=xi))}var p=na===o;if(p){let xi=Ee.maxParamLength,Tp=o;if(!(typeof xi=="number"&&!(xi%1)&&!isNaN(xi)&&isFinite(xi))){let vp=typeof xi,cb;if(cb===void 0)if(vp==="boolean"||xi===null||vp==="string"&&xi&&xi==+xi&&!(xi%1))cb=+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;cb!==void 0&&(xi=cb,Ee!==void 0&&(Ee.maxParamLength=cb))}var p=Tp===o;if(p){let vp=Ee.allowUnsafeRegex,cb=o;if(typeof vp!="boolean"){let iu;if(iu===void 0)if(vp==="false"||vp===0||vp===null)iu=!1;else if(vp==="true"||vp===1)iu=!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;iu!==void 0&&(vp=iu,Ee!==void 0&&(Ee.allowUnsafeRegex=iu))}var p=cb===o;if(p){let iu=Ee.useSemicolonDelimiter,UCt=o;if(typeof iu!="boolean"){let nA;if(nA===void 0)if(iu==="false"||iu===0||iu===null)nA=!1;else if(iu==="true"||iu===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&&(iu=nA,Ee!==void 0&&(Ee.useSemicolonDelimiter=nA))}var p=UCt===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 kt in Ee){let dn=Ee[kt],_t=o;if(o===_t)if(dn&&typeof dn=="object"&&!Array.isArray(dn)){let na;if(dn.name===void 0&&(na="name")||dn.storage===void 0&&(na="storage")||dn.validate===void 0&&(na="validate")||dn.deriveConstraint===void 0&&(na="deriveConstraint"))return qn.errors=[{instancePath:t+"/constraints/"+kt.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/required",keyword:"required",params:{missingProperty:na},message:"must have required property '"+na+"'"}],!1;if(dn.name!==void 0){let Ll=dn.name;if(typeof Ll!="string"){let xi=typeof Ll,Tp;if(Tp===void 0)if(xi=="number"||xi=="boolean")Tp=""+Ll;else if(Ll===null)Tp="";else return qn.errors=[{instancePath:t+"/constraints/"+kt.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&&(Ll=Tp,dn!==void 0&&(dn.name=Tp))}}}else return qn.errors=[{instancePath:t+"/constraints/"+kt.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}n3.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 rct=w((OZr,i3)=>{"use strict";var r3=nct(),fDn=qW()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:pDn}=Ko();function hDn(e){let t=fDn(e);if(!r3(t)){let n=new pDn(JSON.stringify(r3.errors.map(r=>r.message)));throw n.errors=r3.errors,n}return yde(t)}function yde(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"?yde(r):r)}return Object.freeze(e)}i3.exports=hDn;i3.exports.defaultInitOptions=r3.defaultInitOptions;i3.exports.utils={deepFreezeObject:yde}});var fct=w((NZr,dct)=>{"use strict";var{kAvvioBoot:mDn,kChildren:ict,kRoutePrefix:sct,kLogLevel:oct,kLogSerializers:Sde,kHooks:Ede,kSchemaController:iI,kContentTypeParser:act,kReply:cct,kRequest:uct,kFourOhFour:gDn,kPluginNameChain:lct,kErrorHandlerAlreadySet:yDn}=$s(),SDn=eK(),EDn=oK(),bDn=vle(),_Dn=Rue(),{buildHooks:TDn}=WS(),tD=Zle();dct.exports=function(t,n,r){let i=tD.registerPlugin.call(t,n),s=tD.getPluginName(n)||tD.getFuncPreview(n);if(i)return t[lct].push(s),t;let o=Object.create(t);t[ict].push(o),o.ready=t[mDn].bind(o),o[ict]=[],o[cct]=SDn.buildReply(o[cct]),o[uct]=EDn.buildRequest(o[uct]),o[act]=_Dn.helpers.buildContentTypeParser(o[act]),o[Ede]=TDn(o[Ede]),o[sct]=vDn(o[sct],r.prefix),o[oct]=r.logLevel||o[oct],o[iI]=bDn.buildSchemaController(t[iI]),o.getSchema=o[iI].getSchema.bind(o[iI]),o.getSchemas=o[iI].getSchemas.bind(o[iI]),o[tD.kRegisteredPlugins]=Object.create(o[tD.kRegisteredPlugins]),o[lct]=[s],o[yDn]=!1,(o[Sde]||r.logSerializers)&&(o[Sde]=Object.assign(Object.create(o[Sde]),r.logSerializers)),r.prefix&&o[gDn].arrange404(o);for(let a of o[Ede].onRegister)a.call(t,o,r);return o};function vDn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var yct=w(xh=>{"use strict";Object.defineProperty(xh,"__esModule",{value:!0});xh.parseCookie=mct;xh.parse=mct;xh.stringifyCookie=xDn;xh.stringifySetCookie=s3;xh.serialize=s3;xh.parseSetCookie=ODn;xh.stringifySetCookie=s3;xh.serialize=s3;var pct=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,hct=/^[\u0021-\u003A\u003C-\u007E]*$/,ADn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,RDn=/^[\u0020-\u003A\u003D-\u007E]*$/,wDn=/^-?\d+$/,kDn=Object.prototype.toString,IDn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function mct(e,t){let n=new IDn,r=e.length;if(r<2)return n;let i=t?.decode||gct,s=0;do{let o=_de(e,s,r);if(o===-1)break;let a=bde(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=rE(e,s,o);n[c]===void 0&&(n[c]=i(rE(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 gct(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function NDn(e){return kDn.call(e)==="[object Date]"}});var Ect=w((CZr,o3)=>{"use strict";var{format:Tde}=Z("node:util");function PDn(e){return Sct({...e,name:"DeprecationWarning"})}function Sct({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=Tde(n,o,a,c):o&&a?u=Tde(n,o,a):o?u=Tde(n,o):u=n,u},s}var vde={createWarning:Sct,createDeprecation:PDn};o3.exports=vde;o3.exports.default=vde;o3.exports.processWarning=vde});var Tct=w((MZr,_ct)=>{"use strict";var{URL:bct}=Z("node:url"),Ade="http://localhost";_ct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=Ade+t);let r=typeof t=="object"?Object.assign(new bct(Ade),t):new bct(t,Ade);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 vct=w((DZr,Rde)=>{"use strict";var{randomUUID:CDn}=Z("node:crypto"),{Readable:MDn}=Z("node:stream"),sI;function DDn(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 LDn(e){sI=sI??new TextEncoder;let t=`----formdata-${CDn()}`,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 sI.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 aI.encode(`${n}; name="${r(i(c))}"\r \r -`),yield sI.encode(`${i(u)}\r +`),yield aI.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 sI.encode(l),u.stream?yield*u.stream():yield u,yield s}yield sI.encode(`--${t}--`)}return{stream:MDn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}Rde.exports.isFormDataLike=DDn;Rde.exports.formDataToStream=LDn});var wct=w((LZr,a3)=>{"use strict";var{Readable:Act,addAbortSignal:UDn}=Z("node:stream"),kde=Z("node:util"),FDn=yct(),jDn=Z("node:assert"),{createDeprecation:HDn}=Ect(),qDn=Tct(),{isFormDataLike:BDn,formDataToStream:GDn}=vct(),{EventEmitter:zDn}=Z("node:events"),VDn=HDn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function WDn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var wde=class extends zDn{constructor(t){super(),this.remoteAddress=t}};function Rct(e){return new t(this);function t(n){iE.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(iE.prototype))this.constructor.prototype[r]=iE.prototype[r];return kde.inherits(this.constructor,e.Request),this}}function iE(e){Act.call(this,{autoDestroy:!1});let t=qDn(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];jDn(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||WDn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>FDn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new wde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return VDn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(BDn(r)){let o=GDn(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&&UDn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=KDn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=ZDn}return this}function KDn(){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 ZDn(){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)})}kde.inherits(iE,Act);kde.inherits(Rct,iE);iE.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")))};a3.exports=iE;a3.exports.Request=iE;a3.exports.CustomRequest=Rct});var Ict=w((UZr,nD)=>{"use strict";var c3={decodeValues:!0,map:!1,silent:!1};function Ide(e){return typeof e!="string"||e in{}}function xde(){return Object.create(null)}function Ode(e){return typeof e=="string"&&!!e.trim()}function Nde(e,t){var n=e.split(";").filter(Ode),r=n.shift(),i=YDn(r),s=i.name,o=i.value;if(t=t?Object.assign({},c3,t):c3,Ide(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=xde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!Ide(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 YDn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function kct(e,t){if(t=t?Object.assign({},c3,t):c3,!e)return t.map?xde():[];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=xde();return e.filter(Ode).reduce(function(i,s){var o=Nde(s,t);return o&&!Ide(o.name)&&(i[o.name]=o),i},r)}else return e.filter(Ode).map(function(i){return Nde(i,t)}).filter(Boolean)}function JDn(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}nD.exports=kct;nD.exports.parse=kct;nD.exports.parseString=Nde;nD.exports.splitCookiesString=JDn});var Cct=w((FZr,Pct)=>{"use strict";var rD=Z("node:http"),{Writable:XDn,Readable:xct,addAbortSignal:QDn}=Z("node:stream"),$Dn=Z("node:util"),eLn=Ict();function sE(e,t,n){if(rD.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new xct({read:a})};let c=e._lightMyRequest.signal;c&&QDn(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(tLn()),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=Oct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}$Dn.inherits(sE,rD.ServerResponse);sE.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};sE.prototype.writeHead=function(){let e=rD.ServerResponse.prototype.writeHead.apply(this,arguments);return Nct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(Oct(this)),e};sE.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),rD.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)};sE.prototype.end=function(e,t,n){e&&this.write(e,t),rD.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};sE.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};sE.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function Oct(e){e._lightMyRequest.headers===null&&Nct(e),nLn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return eLn.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:xct.from(e._lightMyRequest.payloadChunks)},t}function tLn(){return new XDn({write(e,t,n){setImmediate(n)}})}function nLn(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])})}Pct.exports=sE});var Mct=w((jZr,Pde)=>{"use strict";Pde.exports=eo;Pde.exports.default=eo;var rLn={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 b;if(e.url===void 0&&(b="url")){let _={instancePath:t,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty:b},message:"must have required property '"+b+"'"};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 b;if(e.path===void 0&&(b="path")){let _={instancePath:t,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty:b},message:"must have required property '"+b+"'"};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 b={instancePath:t,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas:u},message:"must match exactly one schema in oneOf"};return s===null?s=[b]:s.push(b),o++,eo.errors=s,!1}if(o===0)if(e&&typeof e=="object"&&!Array.isArray(e)){if(e.url!==void 0){let b=e.url,_=o,T=o,A=!1,R=null,x=o;if(typeof b!="string"){let N=typeof b,P;if(P===void 0)if(N=="number"||N=="boolean")P=""+b;else if(b===null)P="";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++}P!==void 0&&(b=P,e!==void 0&&(e.url=P))}var h=x===o;h&&(A=!0,R=0);let k=o;if(o===k)if(b&&typeof b=="object"&&!Array.isArray(b)){let N;if(b.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(b.protocol!==void 0){let P=b.protocol,C=o;if(typeof P!="string"){let F=typeof P,V;if(V===void 0)if(F=="number"||F=="boolean")V=""+P;else if(P===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&&(P=V,b!==void 0&&(b.protocol=V))}var p=C===o}else var p=!0;if(p){if(b.hostname!==void 0){let P=b.hostname,C=o;if(typeof P!="string"){let V=typeof P,K;if(K===void 0)if(V=="number"||V=="boolean")K=""+P;else if(P===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&&(P=K,b!==void 0&&(b.hostname=K))}var p=C===o}else var p=!0;if(p)if(b.pathname!==void 0){let P=b.pathname,C=o;if(typeof P!="string"){let V=typeof P,K;if(K===void 0)if(V=="number"||V=="boolean")K=""+P;else if(P===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&&(P=K,b!==void 0&&(b.pathname=K))}var p=C===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=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 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++,eo.errors=s,!1}var m=_===o}else var m=!0;if(m){if(e.path!==void 0){let b=e.path,_=o,T=o,A=!1,R=null,x=o;if(typeof b!="string"){let P=typeof b,C;if(C===void 0)if(P=="number"||P=="boolean")C=""+b;else if(b===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&&(b=C,e!==void 0&&(e.path=C))}var g=x===o;g&&(A=!0,R=0);let k=o;if(o===k)if(b&&typeof b=="object"&&!Array.isArray(b)){let P;if(b.pathname===void 0&&(P="pathname")){let C={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/1/required",keyword:"required",params:{missingProperty:P},message:"must have required property '"+P+"'"};s===null?s=[C]:s.push(C),o++}else{if(b.protocol!==void 0){let C=b.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,b!==void 0&&(b.protocol=K))}var y=F===o}else var y=!0;if(y){if(b.hostname!==void 0){let C=b.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=$,b!==void 0&&(b.hostname=$))}var y=F===o}else var y=!0;if(y)if(b.pathname!==void 0){let C=b.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=$,b!==void 0&&(b.pathname=$))}var y=F===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=k===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++,eo.errors=s,!1}var m=_===o}else var m=!0;if(m){if(e.cookies!==void 0){let b=e.cookies,_=o;if(o===_&&!(b&&typeof b=="object"&&!Array.isArray(b)))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 b=e.headers,_=o;if(o===_&&!(b&&typeof b=="object"&&!Array.isArray(b)))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 b=e.query,_=o,T=o,A=!1,R=o;if(o===R&&!(b&&typeof b=="object"&&!Array.isArray(b))){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 b!="string"){let P=typeof b,C;if(C===void 0)if(P=="number"||P=="boolean")C=""+b;else if(b===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&&(b=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=_===o}else var m=!0;if(m){if(e.simulate!==void 0){let b=e.simulate,_=o;if(o===_)if(b&&typeof b=="object"&&!Array.isArray(b)){if(b.end!==void 0){let A=b.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,b!==void 0&&(b.end=x))}var S=R===o}else var S=!0;if(S){if(b.split!==void 0){let A=b.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,b!==void 0&&(b.split=k))}var S=R===o}else var S=!0;if(S){if(b.error!==void 0){let A=b.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,b!==void 0&&(b.error=k))}var S=R===o}else var S=!0;if(S)if(b.close!==void 0){let A=b.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,b!==void 0&&(b.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=_===o}else var m=!0;if(m){if(e.authority!==void 0){let b=e.authority,_=o;if(typeof b!="string"){let A=typeof b,R;if(R===void 0)if(A=="number"||A=="boolean")R=""+b;else if(b===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&&(b=R,e!==void 0&&(e.authority=R))}var m=_===o}else var m=!0;if(m){if(e.remoteAddress!==void 0){let b=e.remoteAddress,_=o;if(typeof b!="string"){let A=typeof b,R;if(R===void 0)if(A=="number"||A=="boolean")R=""+b;else if(b===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&&(b=R,e!==void 0&&(e.remoteAddress=R))}var m=_===o}else var m=!0;if(m){if(e.method!==void 0){let b=e.method,_=o;if(typeof b!="string"){let A=typeof b,R;if(R===void 0)if(A=="number"||A=="boolean")R=""+b;else if(b===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&&(b=R,e!==void 0&&(e.method=R))}if(!(b==="ACL"||b==="BIND"||b==="CHECKOUT"||b==="CONNECT"||b==="COPY"||b==="DELETE"||b==="GET"||b==="HEAD"||b==="LINK"||b==="LOCK"||b==="M-SEARCH"||b==="MERGE"||b==="MKACTIVITY"||b==="MKCALENDAR"||b==="MKCOL"||b==="MOVE"||b==="NOTIFY"||b==="OPTIONS"||b==="PATCH"||b==="POST"||b==="PROPFIND"||b==="PROPPATCH"||b==="PURGE"||b==="PUT"||b==="QUERY"||b==="REBIND"||b==="REPORT"||b==="SEARCH"||b==="SOURCE"||b==="SUBSCRIBE"||b==="TRACE"||b==="UNBIND"||b==="UNLINK"||b==="UNLOCK"||b==="UNSUBSCRIBE"||b==="acl"||b==="bind"||b==="checkout"||b==="connect"||b==="copy"||b==="delete"||b==="get"||b==="head"||b==="link"||b==="lock"||b==="m-search"||b==="merge"||b==="mkactivity"||b==="mkcalendar"||b==="mkcol"||b==="move"||b==="notify"||b==="options"||b==="patch"||b==="post"||b==="propfind"||b==="proppatch"||b==="purge"||b==="put"||b==="query"||b==="rebind"||b==="report"||b==="search"||b==="source"||b==="subscribe"||b==="trace"||b==="unbind"||b==="unlink"||b==="unlock"||b==="unsubscribe"))return eo.errors=[{instancePath:t+"/method",schemaPath:"#/properties/method/enum",keyword:"enum",params:{allowedValues:rLn.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 b=e.validate,_=o;if(typeof b!="boolean"){let A;if(A===void 0)if(b==="false"||b===0||b===null)A=!1;else if(b==="true"||b===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&&(b=A,e!==void 0&&(e.validate=A))}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 Uct=w((HZr,sD)=>{"use strict";var iLn=Z("node:assert"),Cde=wct(),u3=Cct(),d3="The dispatch function has already been invoked",Dct=Mct();function Mde(e,t,n){return n===void 0?new iD(e,t):l3(e,t,n)}function sLn(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 Lct(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()}),sLn(n,()=>e.call(t,n,r))}function l3(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(iLn(typeof e=="function","dispatchFunc should be a function"),!Dct(t)))throw new Error(Dct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Cde.CustomRequest:Cde;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),u3.prototype)),typeof n=="function"){let s=new i(t),o=new u3(s,n);return Lct(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new u3(a,s,o);Lct(e,r,a,c)})}function iD(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 oLn=["delete","get","head","options","patch","post","put","trace"];oLn.forEach(e=>{iD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(d3);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var aLn=["body","cookies","headers","payload","query"];aLn.forEach(e=>{iD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(d3);return this.option[e]=t,this}});iD.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(d3);if(this._hasInvoked=!0,typeof e=="function")l3(this.dispatch,this.option,e);else return this._promise=l3(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(iD.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(d3);this._hasInvoked=!0,this._promise=l3(this.dispatch,this.option)}return this._promise[e](...t)})});function cLn(e){return e instanceof Cde||e instanceof u3||e?.constructor?.name==="_CustomLMRRequest"}sD.exports=Mde;sD.exports.default=Mde;sD.exports.inject=Mde;sD.exports.isInjection=cLn});var $ct=w((qZr,lD)=>{"use strict";var uLn="5.8.5",lLn=lQe(),m3=Z("node:http"),dLn=Z("node:diagnostics_channel"),oD,{kAvvioBoot:aD,kChildren:Dde,kServerBindings:Fct,kBodyLimit:fLn,kSupportedHTTPMethods:gT,kRoutePrefix:jct,kLogLevel:pLn,kLogSerializers:hLn,kHooks:Lde,kSchemaController:oE,kRequestAcceptVersion:mLn,kReplySerializerDefault:Hct,kContentTypeParser:gLn,kReply:yLn,kRequest:SLn,kFourOhFour:ELn,kState:Qi,kOptions:Ude,kPluginNameChain:cD,kSchemaErrorFormatter:Fde,kErrorHandler:f3,kKeepAliveConnections:jde,kChildLoggerFactory:Hde,kGenReqId:qde,kErrorHandlerAlreadySet:p3,kHandlerTimeout:bLn}=$s(),{createServer:_Ln}=FQe(),uD=eK(),h3=oK(),TLn=aK(),yT=vM(),ST=Rue(),qct=vle(),{Hooks:vLn,hookRunnerApplication:Bct,supportedHooks:Bde}=WS(),{createChildLogger:Gct,defaultChildLoggerFactory:ALn,createLogger:RLn}=SM(),zct=Zle(),{getGenReqId:Vct,reqIdGenFactory:Xct}=LK(),{buildRouting:wLn,validateBodyLimitOption:kLn,buildRouterOptions:ILn}=Zat(),xLn=tct(),Qct=rct(),OLn=fct(),{appendStackTrace:NLn,AVVIO_ERRORS_MAP:Wct,...ET}=Ko(),PLn=Yae(),{defaultInitOptions:ku}=Qct,{FST_ERR_ASYNC_CONSTRAINT:CLn,FST_ERR_BAD_URL:MLn,FST_ERR_OPTIONS_NOT_OBJ:DLn,FST_ERR_QSP_NOT_FN:LLn,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:ULn,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:FLn,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:jLn,FST_ERR_INSTANCE_ALREADY_LISTENING:HLn,FST_ERR_REOPENED_CLOSE_SERVER:qLn,FST_ERR_ROUTE_REWRITE_NOT_STR:BLn,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:Kct,FST_ERR_ERROR_HANDLER_NOT_FN:GLn,FST_ERR_ERROR_HANDLER_ALREADY_SET:zLn,FST_ERR_ROUTE_METHOD_INVALID:VLn}=ET,{buildErrorHandler:Zct}=bM(),{FSTWRN004:WLn}=xk(),Yct=dLn.channel("fastify.initialization");function Gde(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=KLn(e,N,P),o=wLn(t.routerOptions),a=xLn(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=_Ln(t,c),m=uD.setupResponseListeners,y=qct.buildSchemaController(null,t.schemaController),g={[Qi]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[jde]:h,[gT]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[Ude]:t,[Dde]:[],[Fct]:[],[fLn]:t.bodyLimit,[bLn]:t.handlerTimeout,[jct]:"",[pLn]:"",[hLn]:null,[Lde]:new vLn,[oE]:y,[Fde]:null,[f3]:Zct(),[p3]:!1,[Hde]:t.childLoggerFactory||ALn,[Hct]:null,[gLn]:new ST(t.bodyLimit,t.onProtoPoisoning||ku.onProtoPoisoning,t.onConstructorPoisoning||ku.onConstructorPoisoning),[yLn]:uD.buildReply(uD),[SLn]:h3.buildRequest(h3,t.trustProxy),[ELn]:a,[zct.kRegisteredPlugins]:[],[cD]:["fastify"],[aD]:null,[qde]:n,routing:c,delete:function(W,ee,ie){return o.prepareRoute.call(this,{method:"DELETE",url:W,options:ee,handler:ie})},get:function(W,ee,ie){return o.prepareRoute.call(this,{method:"GET",url:W,options:ee,handler:ie})},head:function(W,ee,ie){return o.prepareRoute.call(this,{method:"HEAD",url:W,options:ee,handler:ie})},trace:function(W,ee,ie){return o.prepareRoute.call(this,{method:"TRACE",url:W,options:ee,handler:ie})},patch:function(W,ee,ie){return o.prepareRoute.call(this,{method:"PATCH",url:W,options:ee,handler:ie})},post:function(W,ee,ie){return o.prepareRoute.call(this,{method:"POST",url:W,options:ee,handler:ie})},put:function(W,ee,ie){return o.prepareRoute.call(this,{method:"PUT",url:W,options:ee,handler:ie})},options:function(W,ee,ie){return o.prepareRoute.call(this,{method:"OPTIONS",url:W,options:ee,handler:ie})},all:function(W,ee,ie){return o.prepareRoute.call(this,{method:this.supportedMethods,url:W,options:ee,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:x,addSchema:k,getSchema:y.getSchema.bind(y),getSchemas:y.getSchemas.bind(y),setValidatorCompiler:V,setSerializerCompiler:$,setSchemaController:B,setReplySerializer:X,setSchemaErrorFormatter:K,setGenReqId:D,addContentTypeParser:ST.helpers.addContentTypeParser,hasContentTypeParser:ST.helpers.hasContentTypeParser,getDefaultJsonParser:ST.defaultParsers.getDefaultJsonParser,defaultTextParser:ST.defaultParsers.defaultTextParser,removeContentTypeParser:ST.helpers.removeContentTypeParser,removeAllContentTypeParsers:ST.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(j){return this[zct.kRegisteredPlugins].includes(j)||this[cD].includes(j)},listen:l,server:u,addresses:function(){let j=this[Fct].map(W=>W.address());return j.push(this.server.address()),j.filter(W=>W)},decorate:yT.add,hasDecorator:yT.exist,decorateReply:yT.decorateReply,decorateRequest:yT.decorateRequest,hasRequestDecorator:yT.existRequest,hasReplyDecorator:yT.existReply,getDecorator:yT.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(g,{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[Ude].https?"https":"http"}://${W}:${j.port}`}},pluginName:{configurable:!0,get(){return this[cD].length>1?this[cD].join(" -> "):this[cD][0]}},prefix:{configurable:!0,get(){return this[jct]}},validatorCompiler:{configurable:!0,get(){return this[oE].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[oE].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[Hde]}},version:{configurable:!0,get(){return uLn}},errorHandler:{configurable:!0,get(){return this[f3].func}},genReqId:{configurable:!0,get(){return this[qde]}},supportedMethods:{configurable:!1,get(){return[...this[gT].bodyless,...this[gT].bodywith]}}}),t.schemaErrorFormatter&&(Jct(t.schemaErrorFormatter),g[Fde]=t.schemaErrorFormatter.bind(g));let E=Number(t.pluginTimeout),S=lLn(g,{autostart:!1,timeout:isNaN(E)===!1?E:ku.pluginTimeout,expose:{use:"register"}});S.override=OLn,S.on("start",()=>g[Qi].started=!0),g[aD]=g.ready,g.ready=A,g.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{g.onClose((j,W)=>{g[Qi].closing=!0,o.closeRoutes(),Bct("preClose",g[aD],g,function(){if(g[Qi].listening){if(d==="idle")j.server.closeIdleConnections();else if(f&&d)j.server.closeAllConnections();else if(d===!0)for(let ee of g[jde])ee.destroy(),g[jde].delete(ee)}p&&j.server.closeHttp2Sessions(),!t.serverFactory||g[Qi].listening?j.server.close(function(ee){ee&&ee.code!=="ERR_SERVER_NOT_RUNNING"?W(null):W()}):process.nextTick(W,null)})})});let b=new TLn({server:g,config:{}});return g.setNotFoundHandler(),a.arrange404(g),o.setup(t,{avvio:S,fourOhFour:a,hasLogger:i,setupResponseListeners:m,throwIfAlreadyStarted:_,keepAliveConnections:h}),u.on("clientError",t.clientErrorHandler.bind(g)),Yct.hasSubscribers&&Yct.publish({fastify:g}),"asyncDispose"in Symbol&&(g[Symbol.asyncDispose]=function(){return g.close()}),g;function _(j){if(g[Qi].started)throw new HLn(j)}function T(j,W){if(oD===void 0&&(oD=Uct()),g[Qi].started){if(g[Qi].closing){let ee=new qLn;if(W){W(ee);return}else return Promise.reject(ee)}return oD(c,j,W)}if(W)this.ready(ee=>{ee?W(ee,null):oD(c,j,W)});else return oD((ee,ie)=>{this.ready(function(Me){if(Me){ie.emit("error",Me);return}c(ee,ie)})},j)}function A(j){if(this[Qi].readyResolver!==null){if(j!=null){this[Qi].readyResolver.promise.then(()=>j(null,g),j);return}return this[Qi].readyResolver.promise}if(process.nextTick(W),this[Qi].readyResolver=PLn.withResolvers(),j)this[Qi].readyResolver.promise.then(()=>j(null,g),j);else return this[Qi].readyResolver.promise;function W(){g[aD]((ie,Me)=>{ie||g[Qi].started||g[Qi].ready||g[Qi].booting?ee(ie):(g[Qi].booting=!0,Bct("onReady",g[aD],g,ee)),Me()})}function ee(ie){if(ie=ie!=null&&Wct[ie.code]!=null?NLn(ie,new Wct[ie.code](ie.message)):ie,ie)return g[Qi].readyResolver.reject(ie);g[Qi].readyResolver.resolve(g),g[Qi].booting=!1,g[Qi].ready=!0,g[Qi].readyResolver=null}}function R(){return this}function x(j,W){if(_('Cannot call "addHook"!'),W==null)throw new ET.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 ET.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onReady"||j==="onListen"){if(W.constructor.name==="AsyncFunction"&&W.length!==0)throw new ET.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onRequestAbort"){if(W.constructor.name==="AsyncFunction"&&W.length!==1)throw new ET.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(W.constructor.name==="AsyncFunction"&&W.length===3)throw new ET.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return j==="onClose"?this.onClose(W.bind(this)):j==="onReady"||j==="onListen"||j==="onRoute"?this[Lde].add(j,W):this.after((ie,Me)=>{try{ee.call(this,j,W),Me(ie)}catch(Ae){Me(Ae)}}),this;function ee(ie,Me){this[Lde].add(ie,Me),this[Dde].forEach(Ae=>ee.call(Ae,ie,Me))}}function k(j){return _('Cannot call "addSchema"!'),this[oE].add(j),this[Dde].forEach(W=>W.addSchema(j)),this}function N(j,W){j.headers["accept-version"]!==void 0&&(j.headers[mLn]=j.headers["accept-version"],j.headers["accept-version"]=void 0),a.router.lookup(j,W)}function P(j,W,ee){if(t.frameworkErrors){let Me=Vct(b.server,W),Ae=Gct(b,t.logger,W,Me),z=new h3(Me,null,W,null,Ae,b),J=new uD(ee,z,Ae);return(typeof r=="function"?r(W):r)===!1&&Ae.info({req:z},"incoming request"),t.frameworkErrors(new MLn(j),z,J)}let ie=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(ie)}),ee.end(ie)}function C(j,W,ee){if(j!==!1)return function(Me){if(Me){if(t.frameworkErrors){let z=Vct(b.server,W),J=Gct(b,t.logger,W,z),oe=new h3(z,null,W,null,J,b),le=new uD(ee,oe,J);return(typeof r=="function"?r(W):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new CLn,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 F(j,W){return _('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,j,W,S,o.routeHandler),this}function V(j){return _('Cannot call "setValidatorCompiler"!'),this[oE].setValidatorCompiler(j),this}function K(j){return _('Cannot call "setSchemaErrorFormatter"!'),Jct(j),this[Fde]=j.bind(this),this}function $(j){return _('Cannot call "setSerializerCompiler"!'),this[oE].setSerializerCompiler(j),this}function B(j){_('Cannot call "setSchemaController"!');let W=this[oE],ee=qct.buildSchemaController(W,Object.assign({},W.opts,j));return this[oE]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function X(j){return _('Cannot call "setReplySerializer"!'),this[Hct]=j,this}function G(j){if(_('Cannot call "setErrorHandler"!'),typeof j!="function")throw new GLn;if(!t.allowErrorHandlerOverride&&this[p3])throw new zLn;return this[p3]&&WLn("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[p3]=!0,this[f3]=Zct(this[f3],j.bind(this)),this}function M(j){return _('Cannot call "setChildLoggerFactory"!'),this[Hde]=j,this}function q(j={}){return j.includeMeta=j.includeHooks?j.includeMeta?Bde.concat(j.includeMeta):Bde:j.includeMeta,o.printRoutes(j)}function U(j,{rewriteUrl:W,logger:ee}){let ie;return function(Ae,z){if(ie===void 0&&(ie=j.isAsyncConstraint()),W){Ae.originalUrl=Ae.url;let J=W.call(g,Ae);if(typeof J=="string")Ae.url=J;else{let oe=new BLn(Ae.url,typeof J);Ae.destroy(oe)}}j.routing(Ae,z,C(ie,Ae,z))}}function D(j){return _('Cannot call "setGenReqId"!'),this[qde]=Xct(this[Ude].requestIdHeader,j),this}function H(j,{hasBody:W=!1}={}){if(typeof j!="string"||m3.METHODS.indexOf(j)===-1)throw new VLn;W===!0?(this[gT].bodywith.add(j),this[gT].bodyless.delete(j)):(this[gT].bodywith.delete(j),this[gT].bodyless.add(j));let ee=j.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(ie,Me,Ae){return o.prepareRoute.call(this,{method:j,url:ie,options:Me,handler:Ae})}),this}}function KLn(e,t,n){if(e&&typeof e!="object")throw new DLn;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new LLn(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new ULn(typeof e.schemaController.bucket);kLn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=Xct(r,e.genReqId),s=e.requestIdLogLabel||"reqId";e.bodyLimit=e.bodyLimit||ku.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 FLn(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new jLn(typeof a.plugins);let{logger:c,hasLogger:u}=RLn(e);e.connectionTimeout=e.connectionTimeout||ku.connectionTimeout,e.keepAliveTimeout=e.keepAliveTimeout||ku.keepAliveTimeout,e.maxRequestsPerSocket=e.maxRequestsPerSocket||ku.maxRequestsPerSocket,e.requestTimeout=e.requestTimeout||ku.requestTimeout,e.logger=c,e.requestIdHeader=r,e.requestIdLogLabel=s,e.disableRequestLogging=o,e.ajv=a,e.clientErrorHandler=e.clientErrorHandler||YLn,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??ku.allowErrorHandlerOverride;let l=Qct(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=ILn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:ku.ignoreTrailingSlash,ignoreDuplicateSlashes:ku.ignoreDuplicateSlashes,maxParamLength:ku.maxParamLength,allowUnsafeRegex:ku.allowUnsafeRegex,buildPrettyMeta:ZLn,useSemicolonDelimiter:ku.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function ZLn(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(Bde).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function YLn(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=m3.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=m3.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=m3.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 Jct(e){if(typeof e!="function")throw new Kct(typeof e);if(e.constructor.name==="AsyncFunction")throw new Kct("AsyncFunction")}lD.exports=Gde;lD.exports.errorCodes=ET;lD.exports.fastify=Gde;lD.exports.default=Gde});var Sl=v(()=>{jne();jne()});var JLn,zde=v(()=>{"use strict";Sl();JLn=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 XLn,QLn,Vde=v(()=>{"use strict";Sl();XLn=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),QLn=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 eut,Wde,tut,dD,g3,nut,rut,Kde,iut,oI,$Ln,e1n,y3,JZr,fD,t1n,XZr,pD,S3,hD,Zde,dg=v(()=>{"use strict";Sl();Vde();eut=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."),Wde=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)."),tut=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."),dD=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."),g3=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."),nut=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:eut,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"),rut=eut,Kde=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"),iut=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(Kde).optional(),comments:O.array(iut).optional()}).describe("Annotations attached to a review decision"),$Ln=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"),e1n=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"),y3=O.object({comments:O.array(iut).optional(),pins:O.array($Ln).optional(),screenshots:O.array(e1n).max(20).optional()}).describe("Annotations attached to a question answer"),JZr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),fD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),t1n=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."),XZr=O.object({error:O.literal("validation_failed"),issues:O.array(t1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),pD=1048576,S3=131072,hD=8388608,Zde=33554432});var n1n,r1n,i1n,s1n,o1n,a1n,c1n,Yde,u1n,Jde=v(()=>{"use strict";Sl();dg();n1n=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"),r1n=O.object({pins:O.array(Kde).optional(),screenshots:O.array(n1n).max(20).optional()}).describe("Annotations attached to a design-direction selection"),i1n=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:r1n.optional()}).describe("Final selection \u2014 user picked one archetype"),s1n=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"),o1n=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"),a1n=O.object({mode:O.literal("upload"),files:O.array(o1n).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"),c1n=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"),Yde=O.discriminatedUnion("mode",[i1n,s1n,a1n,c1n]).describe("POST /direction/:sessionId/select request body"),u1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var sut,l1n,d1n,f1n,p1n,Xde,h1n,Qde,m1n,g1n,$de,y1n,efe=v(()=>{"use strict";Sl();dg();sut=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"),l1n=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:dD,origin:Wde,severity:tut.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:rut,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:g3.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(nut).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:sut.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"),d1n=O.object({intent:O.string(),stage:O.string(),count:O.number().int().nonnegative(),items:O.array(l1n)}).describe("GET /api/feedback/:intent/:stage response body"),f1n=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"),p1n=6e6,Xde=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:Wde.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:f1n.optional(),inline_anchor:sut.optional(),resolution:g3.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(p1n).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"),h1n=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"),Qde=O.object({status:dD.optional(),closed_by:O.string().max(200).optional(),resolution:g3.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"),m1n=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"),g1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),$de=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"),y1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:dD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var tfe,nfe,S1n,E3=v(()=>{"use strict";Sl();dg();tfe=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"),nfe=O.object({answers:O.array(tfe).max(50),feedback:O.string().max(1e4).optional(),annotations:y3.optional()}).describe("POST /question/:sessionId/answer request body"),S1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var E1n,rfe,b1n,ife=v(()=>{"use strict";Sl();dg();E1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),rfe=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"),b1n=O.object({ok:O.literal(!0),decision:E1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var mD,h9r,_1n,T1n,v1n,sfe,A1n,R1n,w1n,out,k1n,I1n,x1n,O1n,N1n,P1n,C1n,M1n,D1n,L1n,U1n,F1n,j1n,H1n,q1n,B1n,G1n,z1n,V1n,W1n,K1n,Z1n,m9r,Y1n,ofe=v(()=>{"use strict";Sl();dg();mD=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),h9r=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),_1n=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."),T1n=O.object({name:O.string(),content:O.string()}),v1n=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()}),A1n=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()}),R1n=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."),w1n=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."),out=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),k1n=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(out).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?'."),I1n=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),x1n=O.object({label:O.string(),kind:I1n}).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')."),O1n=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"),N1n=O.object({session_id:O.string(),session_type:O.literal("review"),status:fD,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:mD.optional(),units:O.array(mD).optional(),criteria:O.array(mD).optional(),mermaid:O.string().optional(),intent_mockups:O.array(mD).optional(),unit_mockups:O.record(O.array(mD)).optional(),stage_states:O.record(_1n).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(out)).optional(),current_state:k1n.optional(),knowledge_files:O.array(T1n).optional(),stage_artifacts:O.array(v1n).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(A1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:w1n.optional(),drift:O.array(R1n).optional(),discovered_review_url:O1n.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:x1n.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)"),P1n=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"),C1n=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),M1n=O.object({session_id:O.string(),session_type:O.literal("question"),status:fD,title:O.string().optional(),context:O.string().optional(),questions:O.array(P1n).optional(),answers:O.array(C1n).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),D1n=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),L1n=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)"),U1n=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:fD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(D1n).optional(),selection:L1n.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),F1n=O.enum(["studio","mode","stage","confirm","url_input"]),j1n=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)."),H1n=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),q1n=O.object({session_id:O.string(),session_type:O.literal("picker"),status:fD,intent_slug:O.string().optional(),kind:F1n,title:O.string(),prompt:O.string(),options:O.array(j1n),selection:H1n.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"),B1n=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"),G1n=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),z1n=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."),V1n=O.discriminatedUnion("session_type",[N1n,M1n,U1n,q1n,z1n]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),W1n=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."),K1n=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()}),Z1n=O.object({slug:O.string(),title:O.string(),status:O.string()}),m9r=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(Z1n),feedback_summary:W1n,stages:O.array(K1n)}).describe("GET /api/review/current response body"),Y1n=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var afe=v(()=>{"use strict";zde();dg();Jde();efe();E3();ife();ofe()});var cfe=v(()=>{"use strict"});var aut=v(()=>{"use strict";Cie();afe();cfe()});function eUn(e){return!(e.includes("\0")||Q1n.test(e)||e.startsWith("/")||e.startsWith("\\")||$1n.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var Q1n,$1n,cut,N9r,uut=v(()=>{"use strict";Sl();Q1n=/%(?:00|2e|2f|5c)/i,$1n=/^[A-Za-z]:/;cut=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(eUn,{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"),N9r=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 lut,tUn,nUn,rUn,iUn,dut,fut,sUn,oUn,aUn,cUn,uUn,lUn,dUn,fUn,pUn,hUn,mUn,gUn,L9r,put=v(()=>{"use strict";Sl();dg();E3();lut=65536,tUn=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)"),nUn=O.object({type:O.literal("answer"),answers:O.array(tfe),feedback:O.string().max(1e4).optional(),annotations:y3.optional()}).describe("Question answer frame (session_type=question)"),rUn=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"),iUn=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."),dut=(e,t)=>{let n=JSON.stringify(e).length;n>lut&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${lut} bytes`,path:[]})},fut=O.discriminatedUnion("type",[tUn,nUn,rUn,iUn]).superRefine(dut).describe("Any client -> server WebSocket envelope"),sUn=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."),oUn=O.object({type:O.literal("error"),error:O.string().max(500)}).describe("Server error frame"),aUn=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."),cUn=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)."),uUn=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()}),lUn=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()}),dUn=O.object({type:O.literal("feedback_changed"),feedback_id:O.string().max(64),status:O.string().max(32),stage:O.string().max(64).optional()}),fUn=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()}),pUn=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),hUn=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),mUn=O.discriminatedUnion("type",[uUn,lUn,dUn,fUn,pUn,hUn]),gUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:mUn}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),L9r=O.discriminatedUnion("type",[sUn,oUn,aUn,cUn,gUn]).superRefine(dut).describe("Any server -> client WebSocket envelope")});var bT=v(()=>{"use strict";aut();afe();zde();Vde();dg();Jde();efe();uut();E3();ife();ofe();put();cfe()});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}=hut(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 hut(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 yD=w((iYr,gut)=>{var yUn=Object.prototype.toString;gut.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 TUn(t)?"generatorfunction":"function";if(SUn(t))return"array";if(RUn(t))return"buffer";if(AUn(t))return"arguments";if(bUn(t))return"date";if(EUn(t))return"error";if(_Un(t))return"regexp";switch(mut(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(vUn(t))return"generator";switch(n=yUn.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 mut(e){return typeof e.constructor=="function"?e.constructor.name:null}function SUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function EUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function bUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function _Un(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function TUn(e,t){return mut(e)==="GeneratorFunction"}function vUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function AUn(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 RUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var Sut=w((sYr,yut)=>{"use strict";yut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var _ut=w((oYr,but)=>{"use strict";var Eut=Sut();but.exports=function(t){Eut(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var IUn=yD(),xUn=_ut();vut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=NUn(e),r={section_delimiter:"---",parse:CUn},i=xUn({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=Tut(),u=[],l=[];function d(g){n.content=g,a=[],u=[]}function f(g){l.length&&(c.key=PUn(l[0],s),c.content=g,i.parse(c,a),a.push(c),c=Tut(),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 Rut(e){return typeof e>"u"||e===null}function DUn(e){return typeof e=="object"&&e!==null}function LUn(e){return Array.isArray(e)?e:Rut(e)?[]:[e]}function UUn(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function SD(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||""}SD.prototype=Object.create(Error.prototype);SD.prototype.constructor=SD;SD.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};wut.exports=SD});var xut=w((lYr,Iut)=>{"use strict";var kut=TT();function ufe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}ufe.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),kut.repeat(" ",t)+r+a+s+` -`+kut.repeat(" ",t+this.position-i+r.length)+"^"};ufe.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};Iut.exports=ufe});var _o=w((dYr,Nut)=>{"use strict";var Out=cI(),HUn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],qUn=["scalar","sequence","mapping"];function BUn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function GUn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(HUn.indexOf(n)===-1)throw new Out('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=BUn(t.styleAliases||null),qUn.indexOf(this.kind)===-1)throw new Out('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}Nut.exports=GUn});var vT=w((fYr,Cut)=>{"use strict";var Put=TT(),b3=cI(),zUn=_o();function lfe(e,t,n){var r=[];return e.include.forEach(function(i){n=lfe(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 VUn(){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 WUn=_o();Mut.exports=new WUn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var Uut=w((hYr,Lut)=>{"use strict";var KUn=_o();Lut.exports=new KUn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var jut=w((mYr,Fut)=>{"use strict";var ZUn=_o();Fut.exports=new ZUn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var _3=w((gYr,Hut)=>{"use strict";var YUn=vT();Hut.exports=new YUn({explicit:[Dut(),Uut(),jut()]})});var But=w((yYr,qut)=>{"use strict";var JUn=_o();function XUn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function QUn(){return null}function $Un(e){return e===null}qut.exports=new JUn("tag:yaml.org,2002:null",{kind:"scalar",resolve:XUn,construct:QUn,predicate:$Un,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var zut=w((SYr,Gut)=>{"use strict";var eFn=_o();function tFn(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 nFn(e){return e==="true"||e==="True"||e==="TRUE"}function rFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}Gut.exports=new eFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:tFn,construct:nFn,predicate:rFn,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 Wut=w((EYr,Vut)=>{"use strict";var iFn=TT(),sFn=_o();function oFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function aFn(e){return 48<=e&&e<=55}function cFn(e){return 48<=e&&e<=57}function uFn(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 Yut=w((bYr,Zut)=>{"use strict";var Kut=TT(),fFn=_o(),pFn=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 hFn(e){return!(e===null||!pFn.test(e)||e[e.length-1]==="_")}function mFn(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 gFn=/^[-+]?[0-9]+e/;function yFn(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(Kut.isNegativeZero(e))return"-0.0";return n=e.toString(10),gFn.test(n)?n.replace("e",".e"):n}function SFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||Kut.isNegativeZero(e))}Zut.exports=new fFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:hFn,construct:mFn,predicate:SFn,represent:yFn,defaultStyle:"lowercase"})});var dfe=w((_Yr,Jut)=>{"use strict";var EFn=vT();Jut.exports=new EFn({include:[_3()],implicit:[But(),zut(),Wut(),Yut()]})});var ffe=w((TYr,Xut)=>{"use strict";var bFn=vT();Xut.exports=new bFn({include:[dfe()]})});var tlt=w((vYr,elt)=>{"use strict";var _Fn=_o(),Qut=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),$ut=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 TFn(e){return e===null?!1:Qut.exec(e)!==null||$ut.exec(e)!==null}function vFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=Qut.exec(e),t===null&&(t=$ut.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 AFn(e){return e.toISOString()}elt.exports=new _Fn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:TFn,construct:vFn,instanceOf:Date,represent:AFn})});var rlt=w((AYr,nlt)=>{"use strict";var RFn=_o();function wFn(e){return e==="<<"||e===null}nlt.exports=new RFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:wFn})});var olt=w((RYr,slt)=>{"use strict";var AT;try{ilt=Z,AT=ilt("buffer").Buffer}catch{}var ilt,kFn=_o(),pfe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function IFn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=pfe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function xFn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=pfe,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),AT?AT.from?AT.from(a):new AT(a):a}function OFn(e){var t="",n=0,r,i,s=e.length,o=pfe;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 NFn(e){return AT&&AT.isBuffer(e)}slt.exports=new kFn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:IFn,construct:xFn,predicate:NFn,represent:OFn})});var clt=w((kYr,alt)=>{"use strict";var PFn=_o(),CFn=Object.prototype.hasOwnProperty,MFn=Object.prototype.toString;function DFn(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 UFn=_o(),FFn=Object.prototype.toString;function jFn(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 qFn=_o(),BFn=Object.prototype.hasOwnProperty;function GFn(e){if(e===null)return!0;var t,n=e;for(t in n)if(BFn.call(n,t)&&n[t]!==null)return!1;return!0}function zFn(e){return e!==null?e:{}}dlt.exports=new qFn("tag:yaml.org,2002:set",{kind:"mapping",resolve:GFn,construct:zFn})});var lI=w((OYr,plt)=>{"use strict";var VFn=vT();plt.exports=new VFn({include:[ffe()],implicit:[tlt(),rlt()],explicit:[olt(),clt(),llt(),flt()]})});var mlt=w((NYr,hlt)=>{"use strict";var WFn=_o();function KFn(){return!0}function ZFn(){}function YFn(){return""}function JFn(e){return typeof e>"u"}hlt.exports=new WFn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:KFn,construct:ZFn,predicate:JFn,represent:YFn})});var ylt=w((PYr,glt)=>{"use strict";var XFn=_o();function QFn(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 $Fn(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 ejn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function tjn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}glt.exports=new XFn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:QFn,construct:$Fn,predicate:tjn,represent:ejn})});var blt=w((CYr,Elt)=>{"use strict";var T3;try{Slt=Z,T3=Slt("esprima")}catch{typeof window<"u"&&(T3=window.esprima)}var Slt,njn=_o();function rjn(e){if(e===null)return!1;try{var t="("+e+")",n=T3.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 ijn(e){var t="("+e+")",n=T3.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 sjn(e){return e.toString()}function ojn(e){return Object.prototype.toString.call(e)==="[object Function]"}Elt.exports=new njn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:rjn,construct:ijn,predicate:ojn,represent:sjn})});var ED=w((DYr,Tlt)=>{"use strict";var _lt=vT();Tlt.exports=_lt.DEFAULT=new _lt({include:[lI()],explicit:[mlt(),ylt(),blt()]})});var Blt=w((LYr,bD)=>{"use strict";var pg=TT(),xlt=cI(),ajn=xut(),Olt=lI(),cjn=ED(),cE=Object.prototype.hasOwnProperty,v3=1,Nlt=2,Plt=3,A3=4,hfe=1,ujn=2,vlt=3,ljn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,djn=/[\x85\u2028\u2029]/,fjn=/[,\[\]\{\}]/,Clt=/^(?:!|!!|![a-z\-]+!)$/i,Mlt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Alt(e){return Object.prototype.toString.call(e)}function Oh(e){return e===10||e===13}function wT(e){return e===9||e===32}function Iu(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 pjn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function hjn(e){return e===120?2:e===117?4:e===85?8:0}function mjn(e){return 48<=e&&e<=57?e-48:-1}function Rlt(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 gjn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Dlt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var Llt=new Array(256),Ult=new Array(256);for(RT=0;RT<256;RT++)Llt[RT]=Rlt(RT)?1:0,Ult[RT]=Rlt(RT);var RT;function yjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||cjn,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 Flt(e,t){return new xlt(t,new ajn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Dt(e,t){throw Flt(e,t)}function R3(e,t){e.onWarning&&e.onWarning.call(null,Flt(e,t))}var wlt={YAML:function(t,n,r){var i,s,o;t.version!==null&&Dt(t,"duplication of %YAML directive"),r.length!==1&&Dt(t,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),i===null&&Dt(t,"ill-formed argument of the YAML directive"),s=parseInt(i[1],10),o=parseInt(i[2],10),s!==1&&Dt(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=o<2,o!==1&&o!==2&&R3(t,"unsupported YAML version of the document")},TAG:function(t,n,r){var i,s;r.length!==2&&Dt(t,"TAG directive accepts exactly two arguments"),i=r[0],s=r[1],Clt.test(i)||Dt(t,"ill-formed tag handle (first argument) of the TAG directive"),cE.call(t.tagMap,i)&&Dt(t,'there is a previously declared suffix for "'+i+'" tag handle'),Mlt.test(s)||Dt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function aE(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=pg.repeat(` -`,t-1))}function Sjn(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),Iu(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),Iu(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),Iu(i)||n&&dI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Iu(r))break}else{if(e.position===e.lineStart&&w3(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&&(aE(e,s,o,!1),gfe(e,e.line-c),s=o=e.position,a=!1),wT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return aE(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function Ejn(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(aE(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)?(aE(e,r,i,!0),gfe(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&w3(e)?Dt(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);Dt(e,"unexpected end of the stream within a single quoted scalar")}function bjn(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 aE(e,n,e.position,!0),e.position++,!0;if(a===92){if(aE(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Oh(a))to(e,!1,t);else if(a<256&&Llt[a])e.result+=Ult[a],e.position++;else if((o=hjn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=pjn(a))>=0?s=(s<<4)+o:Dt(e,"expected hexadecimal character");e.result+=gjn(s),e.position++}else Dt(e,"unknown escape sequence");n=r=e.position}else Oh(a)?(aE(e,n,r,!0),gfe(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&w3(e)?Dt(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}Dt(e,"unexpected end of the stream within a double quoted scalar")}function _jn(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(to(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||Dt(e,"missed comma between flow collection entries"),h=p=m=null,u=l=!1,y===63&&(a=e.input.charCodeAt(e.position+1),Iu(a)&&(u=l=!0,e.position++,to(e,!0,t))),r=e.line,pI(e,t,v3,!1,!0),h=e.tag,p=e.result,to(e,!0,t),y=e.input.charCodeAt(e.position),(l||e.line===r)&&y===58&&(u=!0,y=e.input.charCodeAt(++e.position),to(e,!0,t),pI(e,t,v3,!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),y=e.input.charCodeAt(e.position),y===44?(n=!0,y=e.input.charCodeAt(++e.position)):n=!1}Dt(e,"unexpected end of the stream within a flow collection")}function Tjn(e,t){var n,r,i=hfe,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)hfe===i?i=d===43?vlt:ujn:Dt(e,"repeat of a chomping mode identifier");else if((l=mjn(d))>=0)l===0?Dt(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?Dt(e,"repeat of an indentation width identifier"):(a=t+l-1,o=!0);else break;if(wT(d)){do d=e.input.charCodeAt(++e.position);while(wT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Oh(d)&&d!==0)}for(;d!==0;){for(mfe(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)Dt(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(pI(e,t,A3,!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),y=e.input.charCodeAt(e.position)),e.lineIndent>t&&y!==0)Dt(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)):Dt(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Dt(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||l}function kjn(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&&!Iu(o);)o=e.input.charCodeAt(++e.position);for(r=e.input.slice(n,e.position),i=[],r.length<1&&Dt(e,"directive name must not be less than one character in length");o!==0;){for(;wT(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&&!Iu(o);)o=e.input.charCodeAt(++e.position);i.push(e.input.slice(n,e.position))}o!==0&&mfe(e),cE.call(wlt,r)?wlt[r](e,r,i):R3(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&&Dt(e,"directives end mark is expected"),pI(e,e.lineIndent-1,A3,!1,!0),to(e,!0,-1),e.checkLineBreaks&&djn.test(e.input.slice(t,e.position))&&R3(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&w3(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),Hlt(e,t,pg.extend({schema:Olt},n))}function xjn(e,t){return qlt(e,pg.extend({schema:Olt},t))}bD.exports.loadAll=Hlt;bD.exports.load=qlt;bD.exports.safeLoadAll=Ijn;bD.exports.safeLoad=xjn});var ddt=w((UYr,bfe)=>{"use strict";var TD=TT(),vD=cI(),Ojn=ED(),Njn=lI(),Jlt=Object.prototype.toString,Xlt=Object.prototype.hasOwnProperty,Pjn=9,_D=10,Cjn=13,Mjn=32,Djn=33,Ljn=34,Qlt=35,Ujn=37,Fjn=38,jjn=39,Hjn=42,$lt=44,qjn=45,edt=58,Bjn=61,Gjn=62,zjn=63,Vjn=64,tdt=91,ndt=93,Wjn=96,rdt=123,Kjn=124,idt=125,dc={};dc[0]="\\0";dc[7]="\\a";dc[8]="\\b";dc[9]="\\t";dc[10]="\\n";dc[11]="\\v";dc[12]="\\f";dc[13]="\\r";dc[27]="\\e";dc[34]='\\"';dc[92]="\\\\";dc[133]="\\N";dc[160]="\\_";dc[8232]="\\L";dc[8233]="\\P";var Zjn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Yjn(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),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,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&&Vlt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!hI(o))return k3;a=s>0?e.charCodeAt(s-1):null,f=f&&Vlt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?odt:adt:n>9&&sdt(e)?k3:u?udt:cdt}function tHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&Zjn.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 Xjn(e,c)}switch(eHn(t,o,e.indent,s,a)){case odt:return t;case adt:return"'"+t.replace(/'/g,"''")+"'";case cdt:return"|"+Wlt(t,e.indent)+Klt(zlt(t,i));case udt:return">"+Wlt(t,e.indent)+Klt(zlt(nHn(t,s),i));case k3:return'"'+rHn(t,s)+'"';default:throw new vD("impossible error: invalid scalar style")}})()}function Wlt(e,t){var n=sdt(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 Klt(e){return e[e.length-1]===` -`?e.slice(0,-1):e}function nHn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` -`);return u=u!==-1?u:e.length,n.lastIndex=u,Zlt(e.slice(0,u),t)})(),i=e[0]===` +`}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,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!==""?` -`:"")+Zlt(c,t),i=s}return r}function Zlt(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 rHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=Glt((n-55296)*1024+r-56320+65536),s++;continue}i=dc[n],t+=!i&&hI(n)?e[s]:i||Glt(n)}return t}function iHn(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?"":" "),kT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function aHn(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 vD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&_D===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=yfe(e,t)),kT(e,t+1,l,!0,d)&&(e.dump&&_D===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function Ylt(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 kT(e,t,n,r,i,s){e.tag=null,e.dump=n,Ylt(e,n,!1)||Ylt(e,n,!0);var o=Jlt.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?(aHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(oHn(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?(sHn(e,l,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(iHn(e,l,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&tHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new vD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function cHn(e,t){var n=[],r=[],i,s;for(Sfe(e,n,r),i=0,s=r.length;i{"use strict";var I3=Blt(),fdt=ddt();function x3(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ys.exports.Type=_o();ys.exports.Schema=vT();ys.exports.FAILSAFE_SCHEMA=_3();ys.exports.JSON_SCHEMA=dfe();ys.exports.CORE_SCHEMA=ffe();ys.exports.DEFAULT_SAFE_SCHEMA=lI();ys.exports.DEFAULT_FULL_SCHEMA=ED();ys.exports.load=I3.load;ys.exports.loadAll=I3.loadAll;ys.exports.safeLoad=I3.safeLoad;ys.exports.safeLoadAll=I3.safeLoadAll;ys.exports.dump=fdt.dump;ys.exports.safeDump=fdt.safeDump;ys.exports.YAMLException=cI();ys.exports.MINIMAL_SCHEMA=_3();ys.exports.SAFE_SCHEMA=lI();ys.exports.DEFAULT_SCHEMA=ED();ys.exports.scan=x3("scan");ys.exports.parse=x3("parse");ys.exports.compose=x3("compose");ys.exports.addConstructor=x3("addConstructor")});var mdt=w((jYr,hdt)=>{"use strict";var lHn=pdt();hdt.exports=lHn});var _fe=w((exports,module)=>{"use strict";var yaml=mdt(),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 ydt=w((HYr,gdt)=>{"use strict";gdt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var O3=w(hg=>{"use strict";var Sdt=ydt(),Edt=yD();hg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};hg.isBuffer=function(e){return Edt(e)==="buffer"};hg.isObject=function(e){return Edt(e)==="object"};hg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};hg.toString=function(e){if(hg.isBuffer(e))return Sdt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return Sdt(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 AD=w((BYr,bdt)=>{"use strict";var dHn=_fe(),fHn=O3();bdt.exports=function(e){let t=Object.assign({},e);return t.delimiters=fHn.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({},dHn,t.parsers,t.engines),t}});var Tfe=w((GYr,_dt)=>{"use strict";_dt.exports=function(e,t){let n=t.engines[e]||t.engines[pHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function pHn(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 vfe=w((zYr,Tdt)=>{"use strict";var hHn=yD(),mHn=Tfe(),gHn=AD();Tdt.exports=function(e,t,n){if(t==null&&n==null)switch(hHn(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=gHn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=mHn(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)!==` +}());`),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 Adt=w((VYr,vdt)=>{"use strict";var yHn=AD();vdt.exports=function(e,t){let n=yHn(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 kdt=w((WYr,wdt)=>{"use strict";var Rdt=yD(),SHn=vfe(),gI=O3();wdt.exports=function(e){return Rdt(e)!=="object"&&(e={content:e}),Rdt(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),SHn(e,t,n)}),e.content=gI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var xdt=w((KYr,Idt)=>{"use strict";var EHn=Tfe(),bHn=AD();Idt.exports=function(e,t,n){let r=bHn(n),i=EHn(e,r);if(typeof i.parse!="function")throw new TypeError('expected "'+e+'.parse" to be a function');return i.parse(t,r)}});var Xt=w((ZYr,Pdt)=>{"use strict";var _Hn=Z("fs"),THn=Aut(),Afe=AD(),vHn=vfe(),Odt=Adt(),AHn=_fe(),RHn=kdt(),wHn=xdt(),Ndt=O3();function Kc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=RHn(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 kHn(n,t)}function kHn(e,t){let n=Afe(t),r=n.delimiters[0],i=` -`+n.delimiters[1],s=e.content;n.language&&(e.language=n.language);let o=r.length;if(!Ndt.startsWith(s,r,o))return Odt(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=wHn(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))),Odt(e,n),(n.sections===!0||typeof n.section=="function")&&THn(e,n.section),e}Kc.engines=AHn;Kc.stringify=function(e,t,n){return typeof e=="string"&&(e=Kc(e,n)),vHn(e,t,n)};Kc.read=function(e,t){let n=_Hn.readFileSync(e,"utf8"),r=Kc(n,t);return r.path=e,r};Kc.test=function(e,t){return Ndt.startsWith(e,Afe(t).delimiters[0])};Kc.language=function(e,t){let r=Afe(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={}};Pdt.exports=Kc});import{execFileSync as IHn}from"node:child_process";function N3(e,t){try{return IHn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function RD(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=Mdt[t];if(!n)return!1;let r=Cdt.get(t);if(r!==void 0)return r;let i=n.probe();return Cdt.set(t,i),i}function Rfe(){return Object.keys(Mdt).filter(RD)}var Mdt,Cdt,wfe=v(()=>{"use strict";Mdt={docker:{name:"docker",displayName:"Docker",probe:()=>N3("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>N3("docker",["compose","version"])||N3("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>N3("make",["--version"])}},Cdt=new Map});function OHn(e,t={}){for(let n of t.requiredTools??[])if(!RD(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return xHn.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 P3(e,t={}){for(let n of e){let r=OHn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var xHn,kfe=v(()=>{"use strict";wfe();xHn=[/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 fc(){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 xu(e,t,n){if(e===t)throw new Error(`registerMigrator: from == to (${e}) \u2014 migrators must change the version`);let r=C3.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),C3.set(e,r)}function NHn(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=C3.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 M3(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:fc()};let r=NHn(t,n);if(r===null)throw new Error(`migrateIntent: no migration path from ${t} to ${n} for intent at ${e.intentDir}`);let i=[],s=fc(),o=t;for(let a of r){let c=(C3.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 C3,Nh=v(()=>{"use strict";C3=new Map});import{join as Ddt}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function Ldt(){let e=nn();return[Ddt(process.cwd(),".haiku","studios"),Ddt(e,"studios")]}var Ife=v(()=>{"use strict";Ci();ze();ze()});function Udt(e){return typeof e=="string"&&CHn.has(e)}function yI(e){return Udt(e)?e:void 0}function uE(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 xfe(e){if(Udt(e))return MHn[e]}var PHn,CHn,MHn,lE=v(()=>{"use strict";PHn=["haiku","sonnet","opus"],CHn=new Set(PHn),MHn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as DHn,readdirSync as Ph,readFileSync as Ou,statSync as Fdt}from"node:fs";import{join as Kt}from"node:path";function Hdt(e){try{if(!Ss(e))return;let{data:t}=re(Ou(e,"utf8"));return yI(t.model)}catch{return}}function $i(e,t){rr(e,"studio"),rr(t,"stage");for(let n of Nu()){let r=Kt(n,e,"stages",t,"STAGE.md");if(Ss(r))return re(Ou(r,"utf8"))}return null}function xd(e){rr(e,"studio");for(let t of Nu()){let n=Kt(t,e,"STUDIO.md");if(Ss(n))return re(Ou(n,"utf8"))}return null}function qdt(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function Bdt(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 Pu(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of Bdt(e,t))if(Ss(r))for(let i of Ph(r).filter(s=>s.endsWith(".md"))){let s=Ou(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:qdt(o.role),raw:s}}return n}function dE(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of Bdt(e,t)){let s=Kt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Nfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(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`);Ss(a)&&(s=a)}return s??dE(e,t,n)}function Gdt(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 El(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of Gdt(e,t))if(Ss(r))for(let i of Ph(r).filter(s=>s.endsWith(".md")))n[i.replace(/\.md$/,"")]=Kt(r,i);return n}function ID(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of Gdt(e,t)){let s=Kt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Pfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"discovery template");for(let r of Nu()){let i=Kt(r,e,"stages",t,"discovery",`${n}.md`);if(Ss(i))return i}return null}function LHn(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"output template");for(let r of Nu()){let i=Kt(r,e,"stages",t,"outputs",`${n}.md`);if(Ss(i))return i}return null}function mg(e){rr(e,"studio");let t={},n=[...Nu()].reverse(),r=i=>{if(Ss(i))for(let s of Ph(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 xD(e){if(!e||!Ss(e))return null;let{body:t}=re(Ou(e,"utf8"));return(t||"").trim()||null}function SI(e,t,n,r=!1){return xD(r?Nfe(e,t,n):dE(e,t,n))}function Ch(e,t,n){let r=t?ID(e,t,n):mg(e)[n]??null;return xD(r)}function EI(e,t,n){return xD(Pfe(e,t,n))}function D3(e,t,n){return xD(LHn(e,t,n))}function L3(e,t,n){return(Cfe(e,t,n)?.body||"").trim()||null}function Mh(e,t){return($i(e,t)?.body||"").trim()||null}function zdt(e,t){return xD(OD(e)[t]??null)}function Vdt(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 U3(e){rr(e,"studio");let t={};for(let n of Vdt(e))if(Ss(n))for(let r of Ph(n).filter(i=>i.endsWith(".md"))){let i=Ou(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:qdt(s.role),raw:i}}return t}function OD(e){rr(e,"studio");let t={};for(let n of Vdt(e))if(Ss(n))for(let r of Ph(n).filter(i=>i.endsWith(".md")))t[r.replace(/\.md$/,"")]=Kt(n,r);return t}function Wdt(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=Ou(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=UHn(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(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 UHn(e){if(!Ss(e))return[];let t=[],n=[e];for(;n.length>0;){let r=n.pop();try{let i=Ph(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 no(e,t){rr(e,"studio"),rr(t,"stage");let n=[],r=new Set;for(let s of[...Nu()].reverse())for(let o of["discovery","outputs"]){let a=Kt(s,e,"stages",t,o);if(Ss(a))for(let c of Ph(a).filter(u=>u.endsWith(".md"))){let u=`${o}:${c}`;if(r.has(u))continue;r.add(u);let l=Ou(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 F3(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&&Fdt(u).isDirectory())&&l){let f=Ofe(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?Ou(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&&Fdt(u).isDirectory())&&l){let f=Ofe(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?Ou(u,"utf8"):null,description:c.body})}}}return i}function Ofe(e,t=""){let n=Ph(e).filter(i=>!i.startsWith(".")),r=[];for(let i of n){let s=Kt(e,i),o=t?`${t}/${i}`:i,a;try{a=DHn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(Ofe(s,o));else{let c;try{c=Ou(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)?Kt(t,r.slice(i.length)):r.startsWith("/")?r:Kt(process.cwd(),r)}function jHn(){let e=new Map,t=nn(),n=Nu();for(let r of[...n].reverse()){if(!Ss(r))continue;let i=t&&r.startsWith(t)?"plugin":"project";for(let s of Ph(r,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Kt(r,s.name),a=Kt(o,"STUDIO.md");if(!Ss(a))continue;let{data:c,body:u}=re(Ou(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 bI(){let e=Nu().join("|"),t=Date.now();if(kD&&kD.key===e&&kD.expiresAt>t)return kD.value;let n=jHn();return kD={key:e,expiresAt:t+FHn,value:n},n}function si(e){if(!e)return null;let t=e.toLowerCase(),n=bI();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 Cfe(e,t,n){rr(e,"studio"),rr(t,"stage");for(let r of Nu()){let i=Kt(r,e,"stages",t,"phases",`${n.toUpperCase()}.md`);if(Ss(i))return re(Ou(i,"utf8"))}return null}function Kdt(e){rr(e,"studio");let t={},n=Nu();for(let r of[...n].reverse()){let i=Kt(r,e,"reflections");if(Ss(i))for(let s of Ph(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Ou(Kt(i,s),"utf8")}return t}var Nu,FHn,kD,Kn=v(()=>{"use strict";Ife();Ci();lE();ze();Nu=Ldt;FHn=2e3,kD=null});import{spawnSync as HHn}from"node:child_process";import{readFileSync as qHn}from"node:fs";import{homedir as BHn}from"node:os";import{join as Mfe}from"node:path";function Od(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function Zdt(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 GHn(){let e=Od("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Od("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function zHn(){let e=Od("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return Zdt(e||Od("OTEL_EXPORTER_OTLP_HEADERS"))}function VHn(){let e=Od("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Od("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function WHn(){let e=Number(Od("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Od("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function KHn(){return Od("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function ZHn(e){try{let t=qHn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function YHn(){let e={},t=BHn(),n=process.cwd(),r=[t?Mfe(t,".claude","settings.json"):null,Mfe(n,".claude","settings.json"),Mfe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=ZHn(i);s&&Object.assign(e,s)}return e}function JHn(){let t=YHn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function QHn(){let e=Number(Od("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:XHn}function $Hn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=HHn(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 eqn(){let e=QHn();if(_I!==null&&Date.now()-Dfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:sqn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=eqn(),a={"Content-Type":"application/json",...rqn,...o};fetch(nqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(iqn)}).catch(()=>{})}var Ufe,XHn,_I,Dfe,nqn,rqn,Jdt,iqn,sqn,Lfe,Ffe,Xdt,oqn,aqn,Ydt,To=v(()=>{"use strict";Ci();Ufe=zo.telemetry;XHn=174e4,_I=null,Dfe=0;nqn=GHn(),rqn=zHn(),Jdt=VHn(),iqn=WHn(),sqn=tqn(),Lfe=KHn(),Ffe=Lfe==="otlp",Xdt=Jdt==="http/json";Ufe&&!Ffe&&Lfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${Lfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);Ufe&&Ffe&&!Xdt&&console.error(`[haiku/telemetry] OTLP protocol "${Jdt}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);oqn=Ufe&&Ffe&&Xdt,aqn=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"]),Ydt=new Set});import{existsSync as Cu,mkdirSync as uqn,readdirSync as TI,readFileSync as $dt,renameSync as lqn,rmSync as jfe,writeFileSync as dqn}from"node:fs";import{dirname as fqn,join as ro}from"node:path";function yqn(e){return!1}function vI(e){let t=$dt(e,"utf8"),n=(0,Hfe.default)(t);return{data:n.data,body:n.content}}function qfe(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 Bfe(e,t,n){let r=Hfe.default.stringify(n,t);dqn(e,r)}function Gfe(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function tft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function bqn(e,t){let n=ro(e,"intent.md");Cu(n)&&qfe(n,()=>{let{data:r,body:i}=vI(n),s=Gfe(r,pqn);s.plugin_version=eft,(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),Bfe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function _qn(e,t,n,r){let i=ro(e,"units");if(!Cu(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);qfe(a,()=>vqn(a,t,n,r),`unit ${o.name}`)}}function Tqn(e,t,n,r,i){let s={at:t,migrated:!0},o=e.reviews,a=[];try{a=Object.keys(El(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 vqn(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=Gfe(i,hqn);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=tft([a]);Tqn(c,u,n,r,t),t.units_with_synthesized_approval++}Bfe(e,c,s),t.units_migrated++}function Qdt(e,t,n){if(!Cu(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);qfe(s,()=>Rqn(s,t,n),`feedback ${i.name}`)}}function Aqn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=fqn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=ro(n,"stages",r,"feedback");if(!Cu(a))try{uqn(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 Cu(p)?null:(lqn(e,p),p)}function Rqn(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=Gfe(r,Sqn);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&&(Eqn.has(s)?(a.closed_at=tft([o,r.created_at]),c=!0):a.closed_at=null),Bfe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Aqn(e,r,t)&&n.feedback_relocated++}function wqn(e){let{intentDir:t}=e,n=fc();bqn(t,n);let r="",i=ro(t,"intent.md");if(Cu(i))try{let o=vI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Cu(s))for(let o of TI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;_qn(a,n,r,c),Qdt(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Cu(u)&&(jfe(u,{force:!0}),n.state_json_deleted++);for(let l of["baseline.json","drift-markers.json","baseline-content"]){let d=ro(a,l);Cu(d)&&(jfe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}Qdt(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Cu(a)&&(jfe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function j3(e){let t=ro(e,"intent.md");if(Cu(t))try{let r=vI(t).data;for(let i of mqn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Cu(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(Cu(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 gqn)if(l in u)return!0;if(yqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Cu(o))try{let a=JSON.parse($dt(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 Hfe,eft,pqn,hqn,mqn,gqn,Sqn,Eqn,H3=v(()=>{"use strict";Hfe=Se(Xt(),1);Kn();To();Nh();eft="4.0.0",pqn=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"]),hqn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),mqn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),gqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);Sqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),Eqn=new Set(["closed","answered","addressed","rejected"]);xu("0",eft,wqn)});var qD={};Rr(qD,{GIT_NETWORK_TIMEOUT_MS:()=>va,GIT_NONINTERACTIVE_ENV:()=>Aa,addTempWorktree:()=>V3,branchAheadOfOrigin:()=>Z3,branchExists:()=>jt,buildCompareUrl:()=>$fe,checkoutFromBranchOnIntentMain:()=>Hqn,cleanupDiscoveryWorktree:()=>Vqn,cleanupFixChainWorktree:()=>J3,cleanupIntentWorktrees:()=>jD,cleanupOrphanedStageBranches:()=>Y3,cleanupUnitWorktree:()=>ype,commitAndPushFromWorktree:()=>K3,consolidateStageBranches:()=>ape,createDiscoveryWorktree:()=>hpe,createFixChainWorktree:()=>gpe,createIntentBranch:()=>RI,createStageBranch:()=>spe,createUnitWorktree:()=>dpe,deleteBranch:()=>HD,deleteStageBranch:()=>gE,detectPrTool:()=>MD,discoveryBranchName:()=>kI,discoveryWorktreePath:()=>wI,ensureOnIntentMain:()=>rpe,ensureOnStageBranch:()=>gr,ensureStageBranch:()=>mE,fetchOrigin:()=>xT,finalizeIntentBranches:()=>Spe,fixChainBranchName:()=>UD,fixChainWorktreePath:()=>yg,getCurrentBranch:()=>mr,getMainlineBranch:()=>pc,hasGitRemote:()=>Jfe,hasNoMergeDebt:()=>CD,isAncestor:()=>Pf,isBranchMerged:()=>bl,isCurrentWorktreeLocked:()=>Fqn,isLiveWorktree:()=>oft,isMergeInProgress:()=>pE,isOnIntentBranch:()=>Mqn,isOnStageBranch:()=>ipe,listIntentBranches:()=>z3,listOrphanDiscreteIntents:()=>Zfe,markPullRequestReady:()=>tpe,mergeDiscoveryWorktree:()=>mpe,mergeFixChainWorktree:()=>FD,mergeStageBranchForward:()=>ope,mergeStageBranchIntoMain:()=>LD,mergeUnitWorktree:()=>ppe,openIntentDraftPullRequest:()=>epe,openPullRequest:()=>AI,openStagePullRequest:()=>Pqn,prepareRevisitBranch:()=>Wqn,pushBranchToOrigin:()=>gg,pushFixChainWorktree:()=>Qfe,pushStageBranch:()=>DD,pushUnitWorktree:()=>Xfe,readFileFromBranch:()=>cpe,reconcileIntentBranches:()=>npe,reconcileMisroutedStageMerges:()=>Cqn,refsHaveIdenticalTrees:()=>B3,removeTempWorktree:()=>W3,resolveMainlineRef:()=>Kfe,syncBranchDownstream:()=>Wfe,uncommittedAgentWork:()=>upe,unitBranchExists:()=>Yfe,unitSpecInWorktree:()=>Uqn,unitWorktreePath:()=>hE,writeOnIntentMain:()=>jqn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as zfe,mkdirSync as PD,mkdtempSync as kqn,readFileSync as Iqn,rmSync as Vfe}from"node:fs";import{tmpdir as xqn}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 Oqn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` -`)}function B3(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 pE(){if(!Re())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 CD(e,t){return!!(B3(e,t)||Pf(e,t))}function q3(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:va,env:Aa}).trim()}catch{return""}}function mr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function jt(e){return Re()?ae(["git","rev-parse","--verify",e])!=="":!1}function Wfe(e){if(!Re())return{ok:!0,performed:!1,message:"non-git mode"};let t=pc(),n=`haiku/${e}/main`,r=mr(),i=!1;if(t&&n&&jt(n)){let s=ae(["git","rev-parse","--verify",`origin/${t}`])?`origin/${t}`:"",o=jt(t),a=s&&o&&Pf(t,s)&&ae(["git","rev-parse","--verify",t])!==ae(["git","rev-parse","--verify",s]),c=o?a?s:t:s;if(c&&!CD(c,n)){let u=Nqn(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&&jt(n)&&r&&r!==n&&r.startsWith(`haiku/${e}/`)&&!B3(r,n)){let s=ift(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 Nqn(e,t,n,r,i){if(n===t)return ift(e,r,i);try{return Dh(t,o=>G3(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function G3(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};fpe(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 ift(e,t,n){return G3([],e,n,t)}function pc(){if(!Re())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 Kfe(){if(!Re())return"";let e=pc();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function xT(){if(!Re())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:va,env:Aa}),!0}catch{return!1}}function z3(){if(!Re())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 Zfe(){if(!Re())return[];let e=new Set(z3()),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 bl(e,t){if(!Re())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=MD(),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 V3(e,t="haiku-repair",n=!1){if(!Re())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 W3(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function K3(e,t,n){if(!Re())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:va,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??"")){q3(["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 MD(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function AI(e,t,n,r,i){let s=MD();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:va,env:Aa}).trim()}}let c=q3(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=q3(["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:va,env:Aa}).trim()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}function Yfe(e,t){if(!Re())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 Jfe(){return Re()?!!ae(["git","remote"])?.trim():!1}function Xfe(e,t){if(!Re())return;let n=hE(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:va,env:Aa})}catch{}}function Qfe(e,t,n){if(!Re())return;let r=yg(e,t,n);if(!io(r))return;let i=UD(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:va,env:Aa})}catch{}}function gg(e){try{return Kr("git",["push","-u","origin",e],{encoding:"utf8",stdio:"pipe",timeout:va,env:Aa}),{ok:!0}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}}function $fe(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 Pqn(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(!Re())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=$fe(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 epe(e){let t=`haiku/${e.slug}/main`,n=pc(),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(!Re())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=$fe(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 tpe(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:va,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:va,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 DD(e,t){if(!Re())return{ok:!0,skipped:!0};if(process.env.HAIKU_NO_AUTO_PUSH==="1")return{ok:!0,skipped:!0};let n=`haiku/${e}/${t}`;return jt(n)?ae(["git","remote","get-url","origin"])?Z3(n)?gg(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function Z3(e){if(!Re()||!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 Cqn(e,t){if(!Re())return[];let n=[],r=pc(),i=`haiku/${e}/main`;if(!r||!jt(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||Pf(c,u)&&nft(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Pf(c,l)||nft(c,l)<=0)continue;if(a.misrouted=!0,!Pf(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 npe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!Re())return t;xT();let n=`haiku/${e}/main`,r=pc();if(!jt(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(Pf(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 Pf(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&&Pf(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 Pf(e,t){if(!e||!t)return!1;try{return Kr("git",["merge-base","--is-ancestor",e,t],{stdio:"ignore"}),!0}catch{return!1}}function nft(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function Mqn(e){return mr()===`haiku/${e}/main`}function rpe(e){if(!Re())return!0;let t=`haiku/${e}/main`;if(!jt(t)||mr()===t)return!0;try{return IT(["checkout",t]),!0}catch{return!1}}function ipe(e,t){return mr()===`haiku/${e}/${t}`}function sft(e,t){if(ae(["git","rev-parse","--verify",e]))mr()!==e&&IT(["checkout",e]);else if(t)IT(["checkout","-b",e,t]);else try{IT(["checkout","-b",e])}catch{}return e}function RI(e,t){let n=`haiku/${e}/main`;return!Re()||jt(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(!Re())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return sft(`haiku/${e}/${t}`,n)}function ope(e,t,n){if(!Re())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=G3(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 LD(e,t){if(!Re())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]),CD(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(y){let g=h();if(g.length>0)return{conflictFiles:g};let E=Oqn(y);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"]),y;ae(["git",...p,"merge","--abort"]);let b=ae(["git",...p,"stash","push","-u","-m","haiku: pre-merge autostash (untracked clobber guard)"]);if(!/Saved working directory/i.test(b))throw y;try{m()}catch(_){let T=h();if(ae(["git",...p,"stash","pop"]),T.length>0)return{conflictFiles:T};throw ae(["git",...p,"merge","--abort"]),_}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=Dqn(e,f)}catch(m){Lqn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){ND(n);try{IT(["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&&jt(s)&&mr()!==s&&!pE()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function Dqn(e,t){let n=t??Br(),r=es(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!j3(r))return{migrated:!1,unitsMigrated:0};let i=M3({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 Lqn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function ape(e,t){let n=`haiku/${e}/main`;if(!Re())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]),!jt(n))return{branch:sft(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 cpe(e,t){if(!Re())return null;try{return Gt(["git","show",`${e}:${t}`])}catch{return null}}function hE(e,t){return es(Br(),".haiku","worktrees",e,t)}function yg(e,t,n){return es(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function UD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function Uqn(e,t,n){let r=hE(e,n),i=n.endsWith(".md")?n:`${n}.md`;return es(r,".haiku","intents",e,"stages",t,"units",i)}function mE(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!Re()||jt(n)||(jt(r)||RI(e),OT(e),ae(["git","branch",n,r])),n}function IT(e){Gt(["git",...e])}function Fqn(){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(!Re())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!jt(r)&&mE(e,t);let i=t&&jt(r)?r:n,s=mr();if(!jt(i)){let l=pc();if(l&&jt(l)&&s!==l){let d=lpe(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(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)&&Pf(i,"HEAD")&&!Pf("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&&jt(n)){let l=ae(["git","rev-list","--count",`${r}..${n}`]);if(l&&Number.parseInt(l,10)>0&&!B3(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:rft(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. +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: ${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:rft(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 upe(){if(!Re())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 rft(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 jqn(e,t,n,r){if(!Re())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!jt(i))return{ok:!1,message:`${i} does not exist`};try{if(mr()===i){let o=Br(),a=es(o,t),c=a.replace(/\/[^/]+$/,"");PD(c,{recursive:!0}),zfe(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(/\/[^/]+$/,"");PD(c,{recursive:!0}),zfe(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 Hqn(e,t,n,r){let i={paths_copied:[]};if(!Re())return{ok:!0,message:"no git",...i};let s=`haiku/${e}/main`;if(!jt(s))return{ok:!1,message:`${s} does not exist`,...i};if(!jt(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 Y3(e){let t={deleted_local:[],deleted_remote:[]};if(!Re())return t;let n=`haiku/${e}/main`;if(!jt(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-")||bl(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-")||bl(o,n)&&q3(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function qqn(e,t){let n=kqn(es(xqn(),"haiku-merge-"));try{Gt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{Vfe(n,{recursive:!0,force:!0})}catch{}}}function OT(e){if(Re())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(` +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)&&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=Iqn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(zfe(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(!jt(s))return;let c=mr();if(c===s)a();else try{Dh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function fE(e,t){if(!Re()||!jt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=lpe(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 lpe(e){if(!Re()||!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 oft(e){return io(es(e,".git"))}function Bqn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{Vfe(e,{recursive:!0,force:!0})}catch{}}function Gqn(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=lpe(e);if(n){let r=Gqn(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 qqn(e,t)}function dpe(e,t,n){if(!Re())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=mE(e,n);OT(e),BD();let i=`haiku/${e}/${t}`,s=es(Br(),".haiku","worktrees",e),o=es(s,t);try{if(io(o))return o;if(PD(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 zqn(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 fpe(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)zqn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function ppe(e,t,n){if(!Re())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=mE(e,n),i=`haiku/${e}/${t}`,s=hE(e,t);OT(e);let o=io(s);if(!o&&(!jt(i)||bl(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}fpe(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"]),fE(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 hpe(e,t,n){if(!Re())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=mE(e,t);OT(e),BD();let i=kI(e,t,n),s=wI(e,t,n),o=es(Br(),".haiku","worktrees",e);try{return io(s)||(PD(o,{recursive:!0}),jt(i)||ae(["git","branch",i,r]),Gt(["git","worktree","add",s,i])),s}catch{return null}}function mpe(e,t,n){if(!Re())return{success:!0,message:"no worktree"};let r=mE(e,t),i=kI(e,t,n),s=wI(e,t,n);if(OT(e),!io(s))return fE(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=G3(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"]),fE(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 Vqn(e,t,n){if(!Re())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"]),fE(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function gpe(e,t,n){if(!Re())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`:mE(e,t);OT(e),BD();let i=UD(e,t,n),s=yg(e,t,n),o=es(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(PD(o,{recursive:!0}),!jt(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 FD(e,t,n){if(!Re())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:mE(e,t),i=UD(e,t,n),s=yg(e,t,n);if(OT(e),!io(s)||!oft(s))return io(s)&&Bqn(s),fE(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}fpe(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"]),fE(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 J3(e,t,n){if(!Re())return{success:!0,message:"no git"};let r=UD(e,t,n),i=yg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),fE(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function ype(e,t){if(!Re())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=hE(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),fE(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function jD(e){let t=es(Br(),".haiku","worktrees",e);try{Vfe(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function HD(e){return!Re()||mr()===e||!jt(e)?!1:ae(["git","branch","-D",e])!==""}function gE(e,t){if(!Re()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),HD(n)}function Spe(e,t){let n=`haiku/${e}/main`;if(!Re())return{success:!0,merged:[],deleted:[],message:"no git"};if(!jt(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(!jt(o)||bl(o,n))continue;let a=LD(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{IT(["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}`;jt(o)&&bl(o,n)&&HD(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 Wqn(e,t,n){if(!Re())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(!jt(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{jt(r)||Gt(["git","branch",r,s]),mr()!==r&&IT(["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&&jt(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 va,Aa,vr=v(()=>{"use strict";Nh();H3();ze();To();va=3e4,Aa={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as uft from"node:fs";import*as Nd from"node:path";function GD(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 lft(e)}function Yqn(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 Kqn((a?a+":"+n+` +`),u=new uBn((a?a+":"+n+` `:"line "+n+` `)+c+` -`+e.message);throw u.name=e.name,u.cause=e,u}function Jqn(e){let t="";try{t=uft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new Epe(`Could not find template: ${e}`):n}return t}function Xqn(e,t){let n="",r=this.config.views;if(!r)throw new Epe("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($qn.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(Qqn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new Epe(`Template '${e}' is not in the views directory`)}function Qqn(e,t){let n=Nd.relative(e,t);return n&&!n.startsWith("..")&&!Nd.isAbsolute(n)}function tBn(e,t){let n=this.config,r=t?.async?eBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new lft(`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("=")+` `+this.compileToString.call(this,e,t)+` -`):i}}function nBn(e,t){let n=this.config,r=t?.async,i=this.compileBody,s=this.parse.call(this,e),o=`${n.functionHeader} +`):i}}function SBn(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); @@ -586,54 +585,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,oBn):t}function e4(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function cBn(e,t){return e.slice(0,t).split(` -`).length}function uBn(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+"|"+e4(p):p?e4(p):f,""),u=new RegExp(e4(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+e4(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&&GD("unclosed comment",e,m.index),l.lastIndex=E}else g==="'"?(Q3.lastIndex=m.index,Q3.exec(e)?l.lastIndex=Q3.lastIndex:GD("unclosed string",e,m.index)):g==='"'?($3.lastIndex=m.index,$3.exec(e)?l.lastIndex=$3.lastIndex:GD("unclosed string",e,m.index)):g==="`"&&(X3.lastIndex=m.index,X3.exec(e)?l.lastIndex=X3.lastIndex:GD("unclosed string",e,m.index))}y?(t.debug&&(y.lineNo=cBn(e,d.index)),n.push(y)):GD("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{zD=class extends Error{constructor(e){super(e),this.name="Eta Error"}},lft=class extends zD{constructor(e){super(e),this.name="EtaParser Error"}},Kqn=class extends zD{constructor(e){super(e),this.name="EtaRuntime Error"}},Epe=class extends zD{constructor(e){super(e),this.name="EtaFileResolution Error"}},Zqn=class extends zD{constructor(e){super(e),this.name="EtaNameResolution Error"}};$qn=/^\\|^\//,eBn=(async()=>{}).constructor;sBn={"&":"&","<":"<",">":">",'"':""","'":"'"};aft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:aBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},X3=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,Q3=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,$3=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;cft=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}}},fBn=class{constructor(e){e?this.config={...aft,...e}:this.config={...aft};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 zD(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=Yqn;compile=tBn;compileToString=nBn;compileBody=rBn;parse=uBn;render=fft;renderAsync=pft;renderString=lBn;renderStringAsync=dBn;filepathCache={};templatesSync=new cft({});templatesAsync=new cft({});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 fBn{readFile=Jqn;resolvePath=Xqn}});import{execFileSync as pBn}from"node:child_process";import{existsSync as hBn,mkdirSync as z5r,readdirSync as V5r,readFileSync as W5r,writeFileSync as K5r}from"node:fs";import{join as bpe}from"node:path";function Re(){if(NT!==null)return NT;try{pBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),NT=!0}catch{NT=!1}return NT}function hft(){NT=null}function mft(e){NT=e}function gft(e){_pe=e}function ve(){if(_pe)return _pe;let e=process.cwd();for(let t=0;t<20;t++){if(hBn(bpe(e,".haiku")))return bpe(e,".haiku");let n=bpe(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var mBn,NT,_pe,PT=v(()=>{"use strict";gD();mBn=Se(Xt(),1);ih();NT=null;_pe=null});import{execFileSync as gBn}from"node:child_process";import{mkdirSync as n4,mkdtempSync as yBn,readdirSync as e6r,renameSync as SBn,rmSync as EBn,statSync as t6r,writeFileSync as bBn}from"node:fs";import{homedir as _Bn,tmpdir as TBn}from"node:os";import{dirname as yft,join as Mu,resolve as vBn}from"node:path";function Sft(e){e&&(t4&&t4!==e||(t4=e))}function ABn(){return t4||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function RBn(){try{let e=gBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return yft(vBn(e))}catch{}try{return yft(ve())}catch{return process.cwd()}}function wBn(){return RBn().replace(/\//g,"-")}function kBn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function vpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(kBn()?(Tpe||(Tpe=yBn(Mu(TBn(),"haiku-test-projects-"))),Tpe):Mu(_Bn(),".haiku","projects"))}function Ape(){return Mu(vpe(),wBn())}function r4(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Mu("stages",n(t)):"intent",s=Mu(Ape(),"intents",r,"prompts",i);return n4(s,{recursive:!0}),s}function IBn(){let e=Mu(Ape(),"sessions",ABn());return n4(e,{recursive:!0}),e}function Eft(e){return Mu(IBn(),e)}function II(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Mu(Ape(),"intents",n);return n4(r,{recursive:!0}),Mu(r,t)}function bft(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=r4(s,o),d=Mu(l,`${u}.prompt.md`);s4(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 yE(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Mu(r4(t,n),"refs",o(r));n4(a,{recursive:!0});let c=Mu(a,`${o(i).replace(/\.md$/,"")}.md`);return s4(c,s),c}function _ft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=r4(n,r),c=Mu(a,`${o}.prompt.md`);return s4(c,i),{path:c}}function Tft(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 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+"|"+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 xBn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Mu(r4(i,s),`${o}.next-relay.md`)}function i4(e,t){s4(xBn(e),t)}function s4(e,t){let n=`${e}.${process.pid}.tmp`;bBn(n,t,"utf8");try{SBn(n,e)}catch(r){try{EBn(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 t4,Tpe,_l=v(()=>{"use strict";PT();t4=null;Tpe=null});import{existsSync as OBn,readFileSync as NBn,statSync as Rpe}from"node:fs";import{join as o4}from"node:path";import{fileURLToPath as PBn}from"node:url";function MBn(e,t){let n=o4(process.cwd(),".haiku","prompts",e);try{if(Rpe(n).isFile())return n}catch{}let r=o4(t,e);try{if(Rpe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function wft(e){let t=PBn(e),n=t.indexOf(Aft);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+Aft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:o4(r,"plugin","prompts")}}function DBn(e){let t=Rpe(e).mtimeMs,n=Rft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=NBn(e,"utf8");return Rft.set(e,{body:r,mtimeMs:t,path:e}),r}function LBn(){let e=o4(nn(),"prompts");if(OBn(e))return e;try{return wft(import.meta.url).pluginPromptsRoot}catch{return e}}function se(e,t="template.eta.md"){let n,r;if(e.startsWith(vft))n=e.slice(vft.length),r=LBn();else{let a=wft(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=CBn.get(i);if(s!==void 0)return s;let o=MBn(i,r);return DBn(o)}var vft,Aft,Rft,CBn,mt=v(()=>{"use strict";Ci();vft="@canon:",Aft="/packages/haiku/src/orchestrator/prompts/",Rft=new Map,CBn=new Map});import{existsSync as a4,readFileSync as wpe}from"node:fs";import{join as VD}from"node:path";function UBn(e){let t=e;for(let n=0;n<4;n++){let r=VD(t,"settings.yml");if(a4(r))try{let i=wpe(r,"utf8"),{data:s}=(0,c4.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=VD(t,"..")}try{let n=ve(),r=VD(n,"settings.yml");if(a4(r)){let i=wpe(r,"utf8"),{data:s}=(0,c4.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 FBn(e){let t;try{t=ve()}catch{t=process.cwd()}let n=VD(t,"providers",`${e}.md`);if(a4(n))return n;let r=VD(nn(),"providers",`${e}.md`);return a4(r)?r:null}function jBn(e){try{let t=wpe(e,"utf8"),n=(0,c4.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 HBn(e){return e==="git"?Re():!0}function qBn(e){let n=UBn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=FBn(s);if(!o)continue;let a=jBn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&HBn(s)&&i.push(a)}return i}function kft(e,t){return qBn(t).filter(n=>n.splicesInto.includes(e))}var c4,Ift=v(()=>{"use strict";c4=Se(Xt(),1);Ci();PT()});var CT,kpe,Ipe=v(()=>{"use strict";CT=new Set(["runtime-verifier"]),kpe=new Set(["delivery-verifier"])});import{execFileSync as BBn}from"node:child_process";import{mkdirSync as Pft,writeFileSync as Cft}from"node:fs";import{dirname as xft,join as WD,resolve as GBn}from"node:path";function MT(e){let t=null;return()=>(t===null&&(t=se("@canon:_shared",e)),t)}function QBn(){return xpe===null&&(xpe=zBn.renderString(se("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Cf})),xpe}function $Bn(){try{let e=BBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return xft(GBn(e))}catch{}try{return xft(ve())}catch{return process.cwd()}}function Ope(){let e=$Bn().replace(/\//g,"-");return WD(vpe(),e,"shared")}function eGn(){let e=Ope();if(Oft!==e){Pft(e,{recursive:!0});for(let[t,n]of Object.entries(Mft))try{Cft(WD(e,`${t}.md`),n.content(),"utf8")}catch{}Oft=e}}function Es(e){eGn();let t=Mft[e],n=WD(Ope(),`${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 nGn(e,t){let n=tGn();Pft(n,{recursive:!0});let r=WD(n,`${e}.md`),i=`${r}:${e}`;if(!Nft.has(i)){try{Cft(r,t,"utf8")}catch{}Nft.add(i)}return r}function Dft(e){let t=nGn(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 zBn,VBn,WBn,KBn,ZBn,YBn,JBn,XBn,xpe,Mft,Oft,tGn,Nft,Lh=v(()=>{"use strict";Et();PT();ze();_l();mt();Ipe();zBn=new Te({autoEscape:!1,useWith:!0});VBn=MT("announcement.md"),WBn=MT("subagent-error-recovery.md"),KBn=MT("workflow-contracts-elaborate.md"),ZBn=MT("workflow-contracts-execute.md"),YBn=MT("workflow-contracts-fix-loop.md"),JBn=MT("runtime-verification.md"),XBn=MT("service-dependencies.md"),xpe=null;Mft={"workflow-contracts-elaborate":{content:()=>KBn(),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:()=>ZBn(),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:()=>QBn(),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:()=>YBn(),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:()=>VBn(),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:()=>WBn(),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:()=>JBn(),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:()=>XBn(),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."}},Oft="";tGn=()=>WD(Ope(),"providers"),Nft=new Set});import{existsSync as KD,readdirSync as rGn,readFileSync as u4}from"node:fs";import{join as iGn}from"node:path";function xI(e){if(!(!e||!KD(e)))try{let{data:t}=re(u4(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(` +`);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 Npe(e){if(e.length===0)return"";let t=[];for(let{heading:n,path:r}of e){if(!n||!r)continue;let i=Tl(r,n);i&&t.push(i)}return t.join(` -`)}function Tl(e,t){if(!KD(e))return"";let n=u4(e,"utf8"),r;try{r=(0,Lft.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** \`${yE({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 Fft(e,t){if(!KD(e))return"";let n=[];try{let{data:p}=re(u4(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 l4(e){return Fft(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function NI(e){return Fft(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function PI(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]+)$/),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 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 CI(e){let t=iGn(pe(e),"stages");if(!KD(t))return"";let n=[];try{for(let r of rGn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of d4(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}=bft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Tft({path:p,parentInstruction:h,agentType:o,model:a,heading:u,toolAttr:l,background:d===!0?!1:Mi().subagents.backgroundSpawn})}function Du(e){if(!zo.modelSelection)return;let{mandatePath:t,studio:n,stage:r}=e;if(t){let s=Hdt(t);if(s)return s}if(r){let s=$i(n,r),o=yI(s?.data?.default_model);if(o)return o}let i=xd(n);return yI(i?.data?.default_model)}function jft(e,t,n,r,i){let s=Mi();return s.hooks?"":Uft.renderString(sGn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function MI(e,t){if(!t)return"";let n=kft(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=>Dft({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 DI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!KD(t))return"";try{let{data:n}=re(u4(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?"":Uft.renderString(oGn,{slug:n,concurrentLines:o.map(a=>a.line)})}var Lft,Uft,sGn,oGn,ts=v(()=>{"use strict";Et();Lft=Se(Xt(),1);Ci();Sf();lE();ze();Kn();_l();mt();Ift();Lh();Uft=new Te({autoEscape:!1,useWith:!0}),sGn=se("@canon:","_shared/inline-subagent-context.eta.md"),oGn=se("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function f4(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=aGn.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 aGn,Ppe=v(()=>{"use strict";Et();ts();aGn=new Te({autoEscape:!1,useWith:!0})});import{existsSync as Hft,readdirSync as qft,readFileSync as Bft}from"node:fs";import{join as UI}from"node:path";function cGn(){return Cpe===null&&(Cpe=se("@canon:feedback/start_feedback_hat","subagent.eta.md")),Cpe}function uGn(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=Hft(f)?qft(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=Bft(UI(f,p[0]),"utf8");o=(0,Mpe.default)(h).data.model}}catch{}}let a=n?Pu(r,n)?.[i]:U3(r)?.[i],c=n?$i(r,n):void 0,u=xd(r),l=uE({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(Hft(f)){let y=qft(f).find(g=>g.startsWith(p)&&g.endsWith(".md"));if(y){let g=UI(f,y);h=NI(g);try{let E=(0,Mpe.default)(Bft(g,"utf8")).data,b=(Array.isArray(E.iterations)?E.iterations:[]).reduce((_,T)=>{let A=T?.bolt;return typeof A=="number"&&A>_?A:_},0);m=b>0?b:1}catch{}}}return u={priorRejectBlock:h,bolt:m},u},d={slug:t,emitStage:i||void 0,dispatchId:`fix-${r}`,ensureWorktree:()=>gpe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?SI(n,i,f,!0):zdt(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=>uGn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>cGn(),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 f4(d,s,o)}var Mpe,Cpe,Dpe=v(()=>{"use strict";Mpe=Se(Xt(),1);Ci();vr();lE();ze();Kn();Ppe();ts();mt();Cpe=null});function Lpe(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 Gft=v(()=>{"use strict"});var Wft={};Rr(Wft,{computeStageDependents:()=>jpe,filterInputsByPlanStages:()=>Fpe,resolveIntentStages:()=>wn,resolveStageFixHats:()=>Sg,resolveStageHats:()=>bs,resolveStageMetadata:()=>Bpe,resolveStageOptional:()=>ZD,resolveStageReview:()=>qpe,resolveStudioFilePath:()=>Lf,resolveStudioFixHats:()=>Uf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>Hpe});import{existsSync as Df,readdirSync as lGn,readFileSync as Upe}from"node:fs";import{join as Zr}from"node:path";function DT(e){if(!Df(e))return{};let t=Upe(e,"utf8"),{data:n}=re(t);return n}function Lf(e){for(let t of Nu()){let n=Zr(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 Fpe(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[Zr(process.cwd(),".haiku","studios"),Zr(n,"studios")]){let i=Zr(r,e,"STUDIO.md");if(Df(i))return DT(i).stages||[]}return[]}function bs(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Zr(process.cwd(),".haiku","studios"),Zr(i,"studios")]){let o=Zr(s,r,"stages",t,"STAGE.md");if(Df(o))return DT(o).hats||[]}return[]}function Vft(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Zr(process.cwd(),".haiku","studios"),Zr(i,"studios")]){let o=Zr(s,r,"stages",t,"STAGE.md");if(Df(o))return DT(o)}return{}}function ZD(e,t){return Vft(e,t).optional===!0}function jpe(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=Vft(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[Zr(process.cwd(),".haiku","studios"),Zr(r,"studios")]){let o=Zr(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[Zr(r,"fix-hats"),Zr(process.cwd(),".haiku","fix-hats"),Zr(r,"studios",n,"fix-hats"),Zr(process.cwd(),".haiku","studios",n,"fix-hats")])if(Df(s))for(let o of lGn(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[Zr(process.cwd(),".haiku","studios"),Zr(i,"studios")]){let o=Zr(s,r,"stages",t,"STAGE.md");if(Df(o)){let c=DT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function Hpe(e,t,n,r){let i=bs(e,t),s=pe(n),o=Zr(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Df(o))return i;try{let{data:a}=re(Upe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function qpe(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Zr(process.cwd(),".haiku","studios"),Zr(i,"studios")]){let o=Zr(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 Bpe(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Zr(process.cwd(),".haiku","studios"),Zr(i,"studios")]){let o=Zr(s,r,"stages",t,"STAGE.md");if(Df(o)){let a=Upe(o,"utf8"),c=DT(o),{content:u}=(0,zft.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var zft,ns=v(()=>{"use strict";zft=Se(Xt(),1);Ci();ze();Kn()});import{existsSync as Kft,readFileSync as Zft}from"node:fs";import{join as zpe}from"node:path";function dGn(){return Gpe===null&&(Gpe=se("@canon:stage/execute/start_unit_hat","subagent.eta.md")),Gpe}function fGn(e){if(!zo.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=zpe(ar(t,r),"units",`${s}.md`);if(Kft(a))try{let d=Zft(a,"utf8");o=(0,Vpe.default)(d).data.model}catch{}let c=r?Pu(n,r)?.[i]:void 0,u=r?$i(n,r):void 0,l=xd(n);return uE({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function pGn(e){let{slug:t,stage:n,unit:r}=e,i=zpe(ar(t,n),"units",`${r}.md`);if(!Kft(i))return[];try{let s=(0,Vpe.default)(Zft(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=zpe(ar(t,i),"units",`${r}.md`),c=null,u=()=>c??=pGn({slug:t,stage:i,unit:r});return f4({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>dpe(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:()=>l4(a),resolveModel:d=>fGn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>dGn(),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 Vpe,Gpe,Wpe=v(()=>{"use strict";Vpe=Se(Xt(),1);Ci();vr();lE();ze();Kn();Ppe();ts();mt();Gpe=null});function h4(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 Jft(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 m4(e){let t=Jft(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 p4(e){return e.replace(/"/g,""").replace(/\[/g,"[").replace(/\]/g,"]").replace(//g,">")}function Lu(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_");return/^[a-zA-Z]/.test(t)?t:`n_${t}`}function g4(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=p4(l.charAt(0).toUpperCase()+l.slice(1));n.push(` subgraph ${Lu(`stage_${l}`)}["${f}"]`);for(let p of d){let h=p.title||p.slug,m=p4(h),y=Lu(p.slug);n.push(` ${y}["${m}"]`)}n.push(" end")}else{let l=m4(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 ${Lu(`wave_${h}`)}["Wave ${h}"]`);for(let g of y){let E=g.title||g.slug,S=p4(E),b=Lu(g.slug);n.push(` ${b}["${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(` ${Lu(l.from)} --> ${Lu(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(` ${Lu(l.from)} --> ${Lu(l.to)}`)),h&&d&&(c.add(l.to),n.push(` ${Lu(l.from)} --> ${Lu(l.to)}`))}for(let l of c){let d=Lu(l),f=p4(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(Lu(l.id)),u.set(l.status,d)}for(let[l,d]of u){let f=Yft[l]??Yft.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 Yft,Kpe=v(()=>{"use strict";Yft={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 Zpe,readdirSync as Xft,readFileSync as hGn,rmSync as mGn}from"node:fs";import{join as y4}from"node:path";function gGn(e){if(!Zpe(e))return{};let t=hGn(e,"utf8"),{data:n}=re(t);return n}function YD(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function Qft(e,t){if(!YD(e,t))return[];let n=y4(e,"stages",t,"feedback");if(!Zpe(n))return[];let r=[];for(let i of Xft(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{mGn(y4(n,i),{force:!0}),r.push(i)}catch{}return r}function yGn(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=y4(e,"stages",t,"units");if(!Zpe(n))return[];let i=Xft(n).filter(o=>o.endsWith(".md")).map(o=>{let a=gGn(y4(n,o)),c=yGn(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=m4(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 S4(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 E4=v(()=>{"use strict";Kpe();ze()});var hc={};Rr(hc,{HasPropertyKey:()=>b4,IsArray:()=>js,IsAsyncIterator:()=>Ype,IsBigInt:()=>JD,IsBoolean:()=>bg,IsDate:()=>LT,IsFunction:()=>Jpe,IsIterator:()=>Xpe,IsNull:()=>Qpe,IsNumber:()=>vl,IsObject:()=>Ir,IsRegExp:()=>XD,IsString:()=>Yr,IsSymbol:()=>$pe,IsUint8Array:()=>_g,IsUndefined:()=>Hs});function b4(e,t){return t in e}function Ype(e){return Ir(e)&&!js(e)&&!_g(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function JD(e){return typeof e=="bigint"}function bg(e){return typeof e=="boolean"}function LT(e){return e instanceof globalThis.Date}function Jpe(e){return typeof e=="function"}function Xpe(e){return Ir(e)&&!js(e)&&!_g(e)&&Symbol.iterator in e}function Qpe(e){return e===null}function vl(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function XD(e){return e instanceof globalThis.RegExp}function Yr(e){return typeof e=="string"}function $pe(e){return typeof e=="symbol"}function _g(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Zc=v(()=>{});function SGn(e){return e.map(t=>_4(t))}function EGn(e){return new Date(e.getTime())}function bGn(e){return new Uint8Array(e)}function _Gn(e){return new RegExp(e.source,e.flags)}function TGn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=_4(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=_4(e[n]);return t}function _4(e){return js(e)?SGn(e):LT(e)?EGn(e):_g(e)?bGn(e):XD(e)?_Gn(e):Ir(e)?TGn(e):e}function vi(e){return _4(e)}var Uu=v(()=>{Zc()});function BI(e,t){return t===void 0?vi(e):vi({...t,...e})}var T4=v(()=>{Uu()});var ehe=v(()=>{T4();Uu()});function $ft(e){return e!==null&&typeof e=="object"}function ept(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function tpt(e){return e===void 0}function npt(e){return typeof e=="number"}var rpt=v(()=>{});var ipt=v(()=>{rpt()});var v4,spt=v(()=>{ipt();(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=$ft(o);return e.AllowArrayObject?a:a&&!ept(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?npt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=tpt(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(v4||(v4={}))});function vGn(e){return globalThis.Object.freeze(e).map(t=>QD(t))}function AGn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=QD(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=QD(e[n]);return globalThis.Object.freeze(t)}function QD(e){return js(e)?vGn(e):LT(e)?e:_g(e)?e:XD(e)?e:Ir(e)?AGn(e):e}var opt=v(()=>{Zc()});function de(e,t){let n=t!==void 0?{...t,...e}:e;switch(v4.InstanceMode){case"freeze":return QD(n);case"clone":return vi(n);default:return n}}var Ot=v(()=>{spt();opt();Uu()});var Tg=v(()=>{Ot()});var Yo,apt=v(()=>{Yo=class extends Error{constructor(t){super(t)}}});var Uh=v(()=>{apt()});var so,Ff,Ra,Pd,Oe,$D=v(()=>{so=Symbol.for("TypeBox.Transform"),Ff=Symbol.for("TypeBox.Readonly"),Ra=Symbol.for("TypeBox.Optional"),Pd=Symbol.for("TypeBox.Hint"),Oe=Symbol.for("TypeBox.Kind")});var Lt=v(()=>{$D()});function GI(e){return Ir(e)&&e[Ff]==="Readonly"}function Fu(e){return Ir(e)&&e[Ra]==="Optional"}function the(e){return Bn(e,"Any")}function nhe(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 RGn(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 A4(e){return bg(e)||vl(e)||Yr(e)}function Al(e){return Bn(e,"Literal")}function Rl(e){return Bn(e,"MappedKey")}function Ai(e){return Bn(e,"MappedResult")}function SE(e){return Bn(e,"Never")}function wGn(e){return Bn(e,"Not")}function eL(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 _s(e){return Bn(e,"Ref")}function rhe(e){return Bn(e,"RegExp")}function Ag(e){return Bn(e,"String")}function tL(e){return Bn(e,"Symbol")}function wl(e){return Bn(e,"TemplateLiteral")}function kGn(e){return Bn(e,"This")}function EE(e){return Ir(e)&&so in e}function kl(e){return Bn(e,"Tuple")}function nL(e){return Bn(e,"Undefined")}function Zn(e){return Bn(e,"Union")}function IGn(e){return Bn(e,"Uint8Array")}function xGn(e){return Bn(e,"Unknown")}function OGn(e){return Bn(e,"Unsafe")}function NGn(e){return Bn(e,"Void")}function PGn(e){return Ir(e)&&Oe in e&&Yr(e[Oe])}function Il(e){return the(e)||nhe(e)||jf(e)||vg(e)||FT(e)||UT(e)||Hf(e)||qf(e)||RGn(e)||Bf(e)||Gf(e)||rs(e)||jT(e)||Al(e)||Rl(e)||Ai(e)||SE(e)||wGn(e)||eL(e)||zf(e)||qs(e)||HT(e)||qT(e)||_s(e)||rhe(e)||Ag(e)||tL(e)||wl(e)||kGn(e)||kl(e)||nL(e)||Zn(e)||IGn(e)||xGn(e)||OGn(e)||NGn(e)||PGn(e)}var Xn=v(()=>{Zc();Lt()});var Q={};Rr(Q,{IsAny:()=>dpt,IsArgument:()=>fpt,IsArray:()=>ppt,IsAsyncIterator:()=>hpt,IsBigInt:()=>mpt,IsBoolean:()=>gpt,IsComputed:()=>ypt,IsConstructor:()=>Spt,IsDate:()=>Ept,IsFunction:()=>bpt,IsImport:()=>FGn,IsInteger:()=>_pt,IsIntersect:()=>Tpt,IsIterator:()=>vpt,IsKind:()=>Ypt,IsKindOf:()=>kn,IsLiteral:()=>iL,IsLiteralBoolean:()=>jGn,IsLiteralNumber:()=>Rpt,IsLiteralString:()=>Apt,IsLiteralValue:()=>wpt,IsMappedKey:()=>kpt,IsMappedResult:()=>Ipt,IsNever:()=>xpt,IsNot:()=>Opt,IsNull:()=>Npt,IsNumber:()=>Ppt,IsObject:()=>Cpt,IsOptional:()=>UGn,IsPromise:()=>Mpt,IsProperties:()=>R4,IsReadonly:()=>LGn,IsRecord:()=>Dpt,IsRecursive:()=>HGn,IsRef:()=>Lpt,IsRegExp:()=>Upt,IsSchema:()=>Jo,IsString:()=>Fpt,IsSymbol:()=>jpt,IsTemplateLiteral:()=>Hpt,IsThis:()=>qpt,IsTransform:()=>Bpt,IsTuple:()=>Gpt,IsUint8Array:()=>Vpt,IsUndefined:()=>zpt,IsUnion:()=>ahe,IsUnionLiteral:()=>qGn,IsUnknown:()=>Wpt,IsUnsafe:()=>Kpt,IsVoid:()=>Zpt,TypeGuardUnknownTypeError:()=>ihe});function cpt(e){try{return new RegExp(e),!0}catch{return!1}}function she(e){if(!Yr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function upt(e){return ohe(e)||Jo(e)}function rL(e){return Hs(e)||JD(e)}function Jr(e){return Hs(e)||vl(e)}function ohe(e){return Hs(e)||bg(e)}function xr(e){return Hs(e)||Yr(e)}function MGn(e){return Hs(e)||Yr(e)&&she(e)&&cpt(e)}function DGn(e){return Hs(e)||Yr(e)&&she(e)}function lpt(e){return Hs(e)||Jo(e)}function LGn(e){return Ir(e)&&e[Ff]==="Readonly"}function UGn(e){return Ir(e)&&e[Ra]==="Optional"}function dpt(e){return kn(e,"Any")&&xr(e.$id)}function fpt(e){return kn(e,"Argument")&&vl(e.index)}function ppt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Jo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&ohe(e.uniqueItems)&&lpt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function hpt(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Jo(e.items)}function mpt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&rL(e.exclusiveMaximum)&&rL(e.exclusiveMinimum)&&rL(e.maximum)&&rL(e.minimum)&&rL(e.multipleOf)}function gpt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function ypt(e){return kn(e,"Computed")&&Yr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Jo(t))}function Spt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Jo(t))&&Jo(e.returns)}function Ept(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 bpt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Jo(t))&&Jo(e.returns)}function FGn(e){return kn(e,"Import")&&b4(e,"$defs")&&Ir(e.$defs)&&R4(e.$defs)&&b4(e,"$ref")&&Yr(e.$ref)&&e.$ref in e.$defs}function _pt(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 R4(e){return Ir(e)&&Object.entries(e).every(([t,n])=>she(t)&&Jo(n))}function Tpt(e){return kn(e,"Intersect")&&!(Yr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Jo(t)&&!Bpt(t))&&xr(e.type)&&(ohe(e.unevaluatedProperties)||lpt(e.unevaluatedProperties))&&xr(e.$id)}function vpt(e){return kn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Jo(e.items)}function kn(e,t){return Ir(e)&&Oe in e&&e[Oe]===t}function Apt(e){return iL(e)&&Yr(e.const)}function Rpt(e){return iL(e)&&vl(e.const)}function jGn(e){return iL(e)&&bg(e.const)}function iL(e){return kn(e,"Literal")&&xr(e.$id)&&wpt(e.const)}function wpt(e){return bg(e)||vl(e)||Yr(e)}function kpt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>vl(t)||Yr(t))}function Ipt(e){return kn(e,"MappedResult")&&R4(e.properties)}function xpt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function Opt(e){return kn(e,"Not")&&Jo(e.not)}function Npt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function Ppt(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 Cpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&R4(e.properties)&&upt(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function Mpt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Jo(e.item)}function Dpt(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&upt(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&cpt(n[0])&&Ir(t.patternProperties)&&Jo(t.patternProperties[n[0]])})(e)}function HGn(e){return Ir(e)&&Pd in e&&e[Pd]==="Recursive"}function Lpt(e){return kn(e,"Ref")&&xr(e.$id)&&Yr(e.$ref)}function Upt(e){return kn(e,"RegExp")&&xr(e.$id)&&Yr(e.source)&&Yr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function Fpt(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&MGn(e.pattern)&&DGn(e.format)}function jpt(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function Hpt(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Yr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function qpt(e){return kn(e,"This")&&xr(e.$id)&&Yr(e.$ref)}function Bpt(e){return Ir(e)&&so in e}function Gpt(e){return kn(e,"Tuple")&&e.type==="array"&&xr(e.$id)&&vl(e.minItems)&&vl(e.maxItems)&&e.minItems===e.maxItems&&(Hs(e.items)&&Hs(e.additionalItems)&&e.minItems===0||js(e.items)&&e.items.every(t=>Jo(t)))}function zpt(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function qGn(e){return ahe(e)&&e.anyOf.every(t=>Apt(t)||Rpt(t))}function ahe(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Jo(t))}function Vpt(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function Wpt(e){return kn(e,"Unknown")&&xr(e.$id)}function Kpt(e){return kn(e,"Unsafe")}function Zpt(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function Ypt(e){return Ir(e)&&Oe in e&&Yr(e[Oe])&&!CGn.includes(e[Oe])}function Jo(e){return Ir(e)&&(dpt(e)||fpt(e)||ppt(e)||gpt(e)||mpt(e)||hpt(e)||ypt(e)||Spt(e)||Ept(e)||bpt(e)||_pt(e)||Tpt(e)||vpt(e)||iL(e)||kpt(e)||Ipt(e)||xpt(e)||Opt(e)||Npt(e)||Ppt(e)||Cpt(e)||Mpt(e)||Dpt(e)||Lpt(e)||Upt(e)||Fpt(e)||jpt(e)||Hpt(e)||qpt(e)||Gpt(e)||zpt(e)||ahe(e)||Vpt(e)||Wpt(e)||Kpt(e)||Zpt(e)||Ypt(e))}var ihe,CGn,Jpt=v(()=>{Zc();Lt();Uh();ihe=class extends Yo{},CGn=["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 che=v(()=>{Xn();Jpt();Zc()});var Xpt=v(()=>{});var Qpt=v(()=>{Xpt()});var uhe,sL,lhe,BGn,eJr,bE,_E,$pt,eht=v(()=>{uhe="(true|false)",sL="(0|[1-9][0-9]*)",lhe="(.*)",BGn="(?!.*)",eJr=`^${uhe}$`,bE=`^${sL}$`,_E=`^${lhe}$`,$pt=`^${BGn}$`});var oL=v(()=>{eht()});var tht=v(()=>{});var nht=v(()=>{});var rht=v(()=>{tht();nht()});function iht(e,t){return e.includes(t)}function sht(e){return[...new Set(e)]}function VGn(e,t){return e.filter(n=>t.includes(n))}function WGn(e,t){return e.reduce((n,r)=>VGn(n,r),t)}function oht(e){return e.length===1?e[0]:e.length>1?WGn(e.slice(1),e[0]):[]}function aht(e){let t=[];for(let n of e)t.push(...n);return t}var cht=v(()=>{});var aL=v(()=>{cht()});function TE(e){return de({[Oe]:"Any"},e)}var uht=v(()=>{Tg();Lt()});var cL=v(()=>{uht()});function zI(e,t){return de({[Oe]:"Array",type:"array",items:e},t)}var lht=v(()=>{Ot();Lt()});var uL=v(()=>{lht()});function dht(e){return de({[Oe]:"Argument",index:e})}var fht=v(()=>{Ot();Lt()});var dhe=v(()=>{fht()});function VI(e,t){return de({[Oe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var pht=v(()=>{Lt();Ot()});var lL=v(()=>{pht()});function oi(e,t,n){return de({[Oe]:"Computed",target:e,parameters:t},n)}var hht=v(()=>{Tg();$D()});var vE=v(()=>{hht()});function KGn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>KGn(n,r),e)}var w4=v(()=>{});var wg=v(()=>{w4()});function Yn(e){return de({[Oe]:"Never",not:{}},e)}var mht=v(()=>{Ot();Lt()});var wa=v(()=>{mht()});var ght=v(()=>{});function Qn(e){return de({[Oe]:"MappedResult",properties:e})}var fhe=v(()=>{Ot();Lt()});function WI(e,t,n){return de({[Oe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var yht=v(()=>{Ot();Lt()});var dL=v(()=>{yht()});function Fh(e,t,n){return de({[Oe]:"Function",type:"Function",parameters:e,returns:t},n)}var Sht=v(()=>{Ot();Lt()});var BT=v(()=>{Sht()});function fL(e,t){return de({[Oe]:"Union",anyOf:e},t)}var phe=v(()=>{Ot();Lt()});function ZGn(e){return e.some(t=>Fu(t))}function Eht(e){return e.map(t=>Fu(t)?YGn(t):t)}function YGn(e){return is(e,[Ra])}function JGn(e,t){return ZGn(e)?mc(fL(Eht(e),t)):fL(Eht(e),t)}function jh(e,t){return e.length===1?de(e[0],t):e.length===0?Yn(t):JGn(e,t)}var bht=v(()=>{Ot();Lt();wg();wa();kg();phe();Xn()});var _ht=v(()=>{});function yr(e,t){return e.length===0?Yn(t):e.length===1?de(e[0],t):fL(e,t)}var Tht=v(()=>{wa();Ot();phe()});var oo=v(()=>{bht();_ht();Tht()});function XGn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function hhe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function Ig(e,t){return hhe(e,t,"(")}function pL(e,t){return hhe(e,t,")")}function vht(e,t){return hhe(e,t,"|")}function QGn(e){if(!(Ig(e,0)&&pL(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 rzn(e){function t(i,s){if(!Ig(i,s))throw new k4("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 QGn(e)?KI($Gn(e)):ezn(e)?nzn(e):tzn(e)?rzn(e):{type:"const",const:XGn(e)}}function ZI(e){return KI(e.slice(1,e.length-1))}var k4,I4=v(()=>{Uh();k4=class extends Yo{}});function izn(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 szn(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 ozn(e){return e.type==="const"&&e.const===".*"}function GT(e){return izn(e)||ozn(e)?!1:szn(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 mhe("Unknown expression type")})()}function Aht(e){let t=ZI(e.pattern);return GT(t)}var mhe,ghe=v(()=>{I4();Uh();mhe=class extends Yo{}});function*Rht(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Rht(e.slice(1)))yield`${t}${n}`}function*azn(e){return yield*Rht(e.expr.map(t=>[...hL(t)]))}function*czn(e){for(let t of e.expr)yield*hL(t)}function*uzn(e){return yield e.const}function*hL(e){return e.type==="and"?yield*azn(e):e.type==="or"?yield*czn(e):e.type==="const"?yield*uzn(e):(()=>{throw new yhe("Unknown expression")})()}function x4(e){let t=ZI(e.pattern);return GT(t)?[...hL(t)]:[]}var yhe,She=v(()=>{ghe();I4();Uh();yhe=class extends Yo{}});function cr(e,t){return de({[Oe]:"Literal",const:e,type:typeof e},t)}var wht=v(()=>{Ot();Lt()});var ju=v(()=>{wht()});function O4(e){return de({[Oe]:"Boolean",type:"boolean"},e)}var kht=v(()=>{Lt();Tg()});var N4=v(()=>{kht()});function YI(e){return de({[Oe]:"BigInt",type:"bigint"},e)}var Iht=v(()=>{Lt();Tg()});var mL=v(()=>{Iht()});function Cd(e){return de({[Oe]:"Number",type:"number"},e)}var xht=v(()=>{Ot();Lt()});var zT=v(()=>{xht()});function Vf(e){return de({[Oe]:"String",type:"string"},e)}var Oht=v(()=>{Ot();Lt()});var JI=v(()=>{Oht()});function*lzn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield O4():t==="number"?yield Cd():t==="bigint"?yield YI():t==="string"?yield Vf():yield(()=>{let n=t.split("|").map(r=>cr(r.trim()));return n.length===0?Yn():n.length===1?n[0]:jh(n)})()}function*dzn(e){if(e[1]!=="{"){let t=cr("$"),n=Ehe(e.slice(1));return yield*[t,...n]}for(let t=2;t{ju();N4();mL();zT();JI();oo();wa()});function fzn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Pht(e,t){return wl(e)?e.pattern.slice(1,e.pattern.length-1):Zn(e)?`(${e.anyOf.map(n=>Pht(n,t)).join("|")})`:zf(e)?`${t}${sL}`:Gf(e)?`${t}${sL}`:FT(e)?`${t}${sL}`:Ag(e)?`${t}${lhe}`:Al(e)?`${t}${fzn(e.const.toString())}`:vg(e)?`${t}${uhe}`:(()=>{throw new _he(`Unexpected Kind '${e[Oe]}'`)})()}function The(e){return`^${e.map(t=>Pht(t,"")).join("")}$`}var _he,vhe=v(()=>{oL();Lt();Uh();Xn();_he=class extends Yo{}});function VT(e){let n=x4(e).map(r=>cr(r));return jh(n)}var Cht=v(()=>{oo();ju();She()});function P4(e,t){let n=Yr(e)?The(Nht(e)):The(e);return de({[Oe]:"TemplateLiteral",type:"string",pattern:n},t)}var Mht=v(()=>{Ot();bhe();vhe();Zc();Lt()});var xg=v(()=>{ghe();She();bhe();I4();vhe();Cht();Mht()});function pzn(e){return x4(e).map(n=>n.toString())}function hzn(e){let t=[];for(let n of e)t.push(...Hu(n));return t}function mzn(e){return[e.toString()]}function Hu(e){return[...new Set(wl(e)?pzn(e):Zn(e)?hzn(e.anyOf):Al(e)?mzn(e.const):zf(e)?["[number]"]:Gf(e)?["[number]"]:[])]}var C4=v(()=>{xg();Xn()});function gzn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=AE(e,Hu(t[i]),n);return r}function yzn(e,t,n){return gzn(e,t.properties,n)}function Dht(e,t,n){let r=yzn(e,t,n);return Qn(r)}var Ahe=v(()=>{vo();C4();Hh()});function Uht(e,t){return e.map(n=>Fht(n,t))}function Szn(e){return e.filter(t=>!SE(t))}function Ezn(e,t){return M4(Szn(Uht(e,t)))}function bzn(e){return e.some(t=>SE(t))?[]:e}function _zn(e,t){return jh(bzn(Uht(e,t)))}function Tzn(e,t){return t in e?e[t]:t==="[number]"?jh(e):Yn()}function vzn(e,t){return t==="[number]"?e:Yn()}function Azn(e,t){return t in e?e[t]:Yn()}function Fht(e,t){return rs(e)?Ezn(e.allOf,t):Zn(e)?_zn(e.anyOf,t):kl(e)?Tzn(e.items??[],t):jf(e)?vzn(e.items,t):qs(e)?Azn(e.properties,t):Yn()}function Rhe(e,t){return t.map(n=>Fht(e,n))}function Lht(e,t){return jh(Rhe(e,t))}function AE(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(!Il(e)||!Il(t))throw new Yo(r);return oi("Index",[e,t])}return Ai(t)?Dht(e,t,n):Rl(t)?jht(e,t,n):de(Il(t)?Lht(e,Hu(t)):Lht(e,t),n)}var whe=v(()=>{Ot();Uh();vE();wa();Md();oo();C4();khe();Ahe();Xn()});function Rzn(e,t,n){return{[t]:AE(e,[t],vi(n))}}function wzn(e,t,n){return t.reduce((r,i)=>({...r,...Rzn(e,i,n)}),{})}function kzn(e,t,n){return wzn(e,t.keys,n)}function jht(e,t,n){let r=kzn(e,t,n);return Qn(r)}var khe=v(()=>{whe();vo();Uu()});var Hh=v(()=>{khe();Ahe();C4();whe()});function XI(e,t){return de({[Oe]:"Iterator",type:"Iterator",items:e},t)}var Hht=v(()=>{Ot();Lt()});var gL=v(()=>{Hht()});function Izn(e){return globalThis.Object.keys(e).filter(t=>!Fu(e[t]))}function xzn(e,t){let n=Izn(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(()=>{Ot();Lt();Xn();Or=xzn});var xl=v(()=>{qht()});function D4(e,t){return de({[Oe]:"Promise",type:"Promise",item:e},t)}var Bht=v(()=>{Ot();Lt()});var L4=v(()=>{Bht()});function Ozn(e){return de(is(e,[Ff]))}function Nzn(e){return de({...e,[Ff]:"Readonly"})}function Pzn(e,t){return t===!1?Ozn(e):Nzn(e)}function qu(e,t){let n=t??!0;return Ai(e)?Ght(e,n):Pzn(e,n)}var Ihe=v(()=>{Ot();Lt();wg();xhe();Xn()});function Czn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=qu(e[r],t);return n}function Mzn(e,t){return Czn(e.properties,t)}function Ght(e,t){let n=Mzn(e,t);return Qn(n)}var xhe=v(()=>{vo();Ihe()});var WT=v(()=>{xhe();Ihe()});function Dd(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 zht=v(()=>{Ot();Lt()});var RE=v(()=>{zht()});function Vht(e,t){return e in t?Ld(e,t[e]):Qn(t)}function Dzn(e){return{[e]:cr(e)}}function Lzn(e){let t={};for(let n of e)t[n]=cr(n);return t}function Uzn(e,t){return iht(t,e)?Dzn(e):Lzn(t)}function Fzn(e,t){let n=Uzn(e,t);return Vht(e,n)}function yL(e,t){return t.map(n=>Ld(e,n))}function jzn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Ld(e,t[r]);return n}function Ld(e,t){let n={...t};return Fu(t)?mc(Ld(e,is(t,[Ra]))):GI(t)?qu(Ld(e,is(t,[Ff]))):Ai(t)?Vht(e,t.properties):Rl(t)?Fzn(e,t.keys):qf(t)?WI(yL(e,t.parameters),Ld(e,t.returns),n):Bf(t)?Fh(yL(e,t.parameters),Ld(e,t.returns),n):UT(t)?VI(Ld(e,t.items),n):jT(t)?XI(Ld(e,t.items),n):rs(t)?gc(yL(e,t.allOf),n):Zn(t)?yr(yL(e,t.anyOf),n):kl(t)?Dd(yL(e,t.items??[]),n):qs(t)?Or(jzn(e,t.properties),n):jf(t)?zI(Ld(e,t.items),n):HT(t)?D4(Ld(e,t.item),n):t}function Hzn(e,t){let n={};for(let r of e)n[r]=Ld(r,t);return n}function Wht(e,t,n){let r=Il(e)?Hu(e):e,i=t({[Oe]:"MappedKey",keys:r}),s=Hzn(r,i);return Or(s,n)}var Kht=v(()=>{Lt();wg();uL();lL();dL();BT();Hh();Md();gL();ju();xl();kg();L4();WT();RE();oo();aL();fhe();Xn()});var vo=v(()=>{ght();fhe();Kht()});function qzn(e){return de(is(e,[Ra]))}function Bzn(e){return de({...e,[Ra]:"Optional"})}function Gzn(e,t){return t===!1?qzn(e):Bzn(e)}function mc(e,t){let n=t??!0;return Ai(e)?Zht(e,n):Gzn(e,n)}var Ohe=v(()=>{Ot();Lt();wg();Nhe();Xn()});function zzn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=mc(e[r],t);return n}function Vzn(e,t){return zzn(e.properties,t)}function Zht(e,t){let n=Vzn(e,t);return Qn(n)}var Nhe=v(()=>{vo();Ohe()});var kg=v(()=>{Nhe();Ohe()});function SL(e,t={}){let n=e.every(i=>qs(i)),r=Il(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return de(t.unevaluatedProperties===!1||Il(t.unevaluatedProperties)||n?{...r,[Oe]:"Intersect",type:"object",allOf:e}:{...r,[Oe]:"Intersect",allOf:e},t)}var Phe=v(()=>{Ot();Lt();Xn()});function Wzn(e){return e.every(t=>Fu(t))}function Kzn(e){return is(e,[Ra])}function Yht(e){return e.map(t=>Fu(t)?Kzn(t):t)}function Zzn(e,t){return Wzn(e)?mc(SL(Yht(e),t)):SL(Yht(e),t)}function M4(e,t={}){if(e.length===1)return de(e[0],t);if(e.length===0)return Yn(t);if(e.some(n=>EE(n)))throw new Error("Cannot intersect transform types");return Zzn(e,t)}var Jht=v(()=>{Lt();Ot();wg();wa();kg();Phe();Xn()});var Xht=v(()=>{});function gc(e,t){if(e.length===1)return de(e[0],t);if(e.length===0)return Yn(t);if(e.some(n=>EE(n)))throw new Error("Cannot intersect transform types");return SL(e,t)}var Qht=v(()=>{Ot();wa();Phe();Xn()});var Md=v(()=>{Jht();Xht();Qht()});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 Yo("Ref: $ref must be a string");return de({[Oe]:"Ref",$ref:t},n)}var $ht=v(()=>{Uh();Ot();Lt()});var KT=v(()=>{$ht()});function Yzn(e,t){return oi("Awaited",[oi(e,t)])}function Jzn(e){return oi("Awaited",[qh(e)])}function Xzn(e){return gc(emt(e))}function Qzn(e){return yr(emt(e))}function $zn(e){return QI(e)}function emt(e){return e.map(t=>QI(t))}function QI(e,t){return de(Hf(e)?Yzn(e.target,e.parameters):rs(e)?Xzn(e.allOf):Zn(e)?Qzn(e.anyOf):HT(e)?$zn(e.item):_s(e)?Jzn(e.$ref):e,t)}var tmt=v(()=>{Ot();vE();Md();oo();KT();Xn()});var U4=v(()=>{tmt()});function nmt(e){let t=[];for(let n of e)t.push(EL(n));return t}function eVn(e){let t=nmt(e);return aht(t)}function tVn(e){let t=nmt(e);return oht(t)}function nVn(e){return e.map((t,n)=>n.toString())}function rVn(e){return["[number]"]}function iVn(e){return globalThis.Object.getOwnPropertyNames(e)}function sVn(e){return oVn?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function EL(e){return rs(e)?eVn(e.allOf):Zn(e)?tVn(e.anyOf):kl(e)?nVn(e.items??[]):jf(e)?rVn(e.items):qs(e)?iVn(e.properties):qT(e)?sVn(e.patternProperties):[]}var oVn,Che=v(()=>{aL();Xn();oVn=!1});function aVn(e,t){return oi("KeyOf",[oi(e,t)])}function cVn(e){return oi("KeyOf",[qh(e)])}function uVn(e,t){let n=EL(e),r=lVn(n),i=jh(r);return de(i,t)}function lVn(e){return e.map(t=>t==="[number]"?Cd():cr(t))}function $I(e,t){return Hf(e)?aVn(e.target,e.parameters):_s(e)?cVn(e.$ref):Ai(e)?rmt(e,t):uVn(e,t)}var Mhe=v(()=>{Ot();ju();zT();vE();KT();Che();oo();Dhe();Xn()});function dVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=$I(e[r],vi(t));return n}function fVn(e,t){return dVn(e.properties,t)}function rmt(e,t){let n=fVn(e,t);return Qn(n)}var Dhe=v(()=>{vo();Mhe();Uu()});var imt=v(()=>{});var bL=v(()=>{Dhe();imt();Che();Mhe()});function pVn(e){let t=[];for(let n of e)t.push(...EL(n));return sht(t)}function hVn(e){return e.filter(t=>!SE(t))}function mVn(e,t){let n=[];for(let r of e)n.push(...Rhe(r,[t]));return hVn(n)}function gVn(e,t){let n={};for(let r of t)n[r]=M4(mVn(e,r));return n}function smt(e,t){let n=pVn(e),r=gVn(e,n);return Or(r,t)}var omt=v(()=>{Md();Hh();bL();xl();aL();Xn()});var Lhe=v(()=>{omt()});function F4(e){return de({[Oe]:"Date",type:"Date"},e)}var amt=v(()=>{Lt();Ot()});var j4=v(()=>{amt()});function H4(e){return de({[Oe]:"Null",type:"null"},e)}var cmt=v(()=>{Ot();Lt()});var q4=v(()=>{cmt()});function B4(e){return de({[Oe]:"Symbol",type:"symbol"},e)}var umt=v(()=>{Ot();Lt()});var G4=v(()=>{umt()});function z4(e){return de({[Oe]:"Undefined",type:"undefined"},e)}var lmt=v(()=>{Ot();Lt()});var V4=v(()=>{lmt()});function W4(e){return de({[Oe]:"Uint8Array",type:"Uint8Array"},e)}var dmt=v(()=>{Ot();Lt()});var K4=v(()=>{dmt()});function wE(e){return de({[Oe]:"Unknown"},e)}var fmt=v(()=>{Ot();Lt()});var e0=v(()=>{fmt()});function yVn(e){return e.map(t=>Uhe(t,!1))}function SVn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=qu(Uhe(e[n],!1));return t}function Z4(e,t){return t===!0?e:qu(e)}function Uhe(e,t){return Ype(e)?Z4(TE(),t):Xpe(e)?Z4(TE(),t):js(e)?qu(Dd(yVn(e))):_g(e)?W4():LT(e)?F4():Ir(e)?Z4(Or(SVn(e)),t):Jpe(e)?Z4(Fh([],wE()),t):Hs(e)?z4():Qpe(e)?H4():$pe(e)?B4():JD(e)?YI():vl(e)?cr(e):bg(e)?cr(e):Yr(e)?cr(e):Or({})}function pmt(e,t){return de(Uhe(e,!0),t)}var hmt=v(()=>{cL();mL();j4();BT();ju();q4();xl();G4();RE();WT();V4();K4();e0();Tg();Zc()});var Fhe=v(()=>{hmt()});function mmt(e,t){return qf(e)?Dd(e.parameters,t):Yn(t)}var gmt=v(()=>{RE();wa();Xn()});var jhe=v(()=>{gmt()});function ymt(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 yr(i,{...t,[Pd]:"Enum"})}var Smt=v(()=>{ju();Lt();oo();Zc()});var Hhe=v(()=>{Smt()});function Ud(e){return e===fe.False?e:fe.True}function t0(e){throw new Bhe(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)?Rmt(e,t):Q.IsIntersect(t)?Y4(e,t):Q.IsUnion(t)?Whe(e,t):Q.IsUnknown(t)?xmt(e,t):Q.IsAny(t)?Vhe(e,t):t0("StructuralRight")}function Vhe(e,t){return fe.True}function EVn(e,t){return Q.IsIntersect(t)?Y4(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 bVn(e,t){return Q.IsUnknown(e)?fe.False:Q.IsAny(e)?fe.Union:Q.IsNever(e)?fe.True:fe.False}function _Vn(e,t){return Q.IsObject(t)&&J4(t)?fe.True:ao(t)?co(e,t):Q.IsArray(t)?Ud(Nr(e.items,t.items)):fe.False}function TVn(e,t){return ao(t)?co(e,t):Q.IsAsyncIterator(t)?Ud(Nr(e.items,t.items)):fe.False}function vVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Fd(e,t):Q.IsBigInt(t)?fe.True:fe.False}function vmt(e,t){return Q.IsLiteralBoolean(e)||Q.IsBoolean(e)?fe.True:fe.False}function AVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Fd(e,t):Q.IsBoolean(t)?fe.True:fe.False}function RVn(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)=>Ud(Nr(t.parameters[r],n))===fe.True)?Ud(Nr(e.returns,t.returns)):fe.False:fe.False}function wVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Fd(e,t):Q.IsDate(t)?fe.True:fe.False}function kVn(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)=>Ud(Nr(t.parameters[r],n))===fe.True)?Ud(Nr(e.returns,t.returns)):fe.False:fe.False}function Amt(e,t){return Q.IsLiteral(e)&&hc.IsNumber(e.const)||Q.IsNumber(e)||Q.IsInteger(e)?fe.True:fe.False}function IVn(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)?Fd(e,t):fe.False}function Y4(e,t){return t.allOf.every(n=>Nr(e,n)===fe.True)?fe.True:fe.False}function xVn(e,t){return e.allOf.some(n=>Nr(n,t)===fe.True)?fe.True:fe.False}function OVn(e,t){return ao(t)?co(e,t):Q.IsIterator(t)?Ud(Nr(e.items,t.items)):fe.False}function NVn(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)?Fd(e,t):Q.IsString(t)?Imt(e,t):Q.IsNumber(t)?wmt(e,t):Q.IsInteger(t)?Amt(e,t):Q.IsBoolean(t)?vmt(e,t):fe.False}function Rmt(e,t){return fe.False}function PVn(e,t){return fe.True}function Emt(e){let[t,n]=[e,0];for(;Q.IsNot(t);)t=t.not,n+=1;return n%2===0?t:wE()}function CVn(e,t){return Q.IsNot(e)?Nr(Emt(e),t):Q.IsNot(t)?Nr(e,Emt(t)):t0("Invalid fallthrough for Not")}function MVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Fd(e,t):Q.IsNull(t)?fe.True:fe.False}function wmt(e,t){return Q.IsLiteralNumber(e)||Q.IsNumber(e)||Q.IsInteger(e)?fe.True:fe.False}function DVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Fd(e,t):Q.IsInteger(t)||Q.IsNumber(t)?fe.True:fe.False}function Bu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function bmt(e){return J4(e)}function _mt(e){return Bu(e,0)||Bu(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 qhe(e){return Bu(e,0)}function Tmt(e){return Bu(e,0)}function LVn(e){return Bu(e,0)}function UVn(e){return Bu(e,0)}function FVn(e){return J4(e)}function jVn(e){let t=Cd();return Bu(e,0)||Bu(e,1)&&"length"in e.properties&&Ud(Nr(e.properties.length,t))===fe.True}function HVn(e){return Bu(e,0)}function J4(e){let t=Cd();return Bu(e,0)||Bu(e,1)&&"length"in e.properties&&Ud(Nr(e.properties.length,t))===fe.True}function qVn(e){let t=Fh([TE()],TE());return Bu(e,0)||Bu(e,1)&&"then"in e.properties&&Ud(Nr(e.properties.then,t))===fe.True}function kmt(e,t){return Nr(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)&&bmt(t)||Q.IsLiteralNumber(e)&&qhe(t)||Q.IsLiteralBoolean(e)&&Tmt(t)||Q.IsSymbol(e)&&_mt(t)||Q.IsBigInt(e)&&LVn(t)||Q.IsString(e)&&bmt(t)||Q.IsSymbol(e)&&_mt(t)||Q.IsNumber(e)&&qhe(t)||Q.IsInteger(e)&&qhe(t)||Q.IsBoolean(e)&&Tmt(t)||Q.IsUint8Array(e)&&FVn(t)||Q.IsDate(e)&&UVn(t)||Q.IsConstructor(e)&&HVn(t)||Q.IsFunction(e)&&jVn(t)?fe.True:Q.IsRecord(e)&&Q.IsString(Ghe(e))?t[Pd]==="Record"?fe.True:fe.False:Q.IsRecord(e)&&Q.IsNumber(Ghe(e))&&Bu(t,0)?fe.True:fe.False}function BVn(e,t){return ao(t)?co(e,t):Q.IsRecord(t)?Fd(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(kmt(e.properties[n],t.properties[n])===fe.False)return fe.False}return fe.True})():fe.False}function GVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)&&qVn(t)?fe.True:Q.IsPromise(t)?Ud(Nr(e.item,t.item)):fe.False}function Ghe(e){return bE in e.patternProperties?Cd():_E in e.patternProperties?Vf():t0("Unknown record key pattern")}function zhe(e){return bE in e.patternProperties?e.patternProperties[bE]:_E in e.patternProperties?e.patternProperties[_E]:t0("Unable to get record value schema")}function Fd(e,t){let[n,r]=[Ghe(t),zhe(t)];return Q.IsLiteralString(e)&&Q.IsNumber(n)&&Ud(Nr(e,r))===fe.True?fe.True:Q.IsUint8Array(e)&&Q.IsNumber(n)||Q.IsString(e)&&Q.IsNumber(n)||Q.IsArray(e)&&Q.IsNumber(n)?Nr(e,r):Q.IsObject(e)?(()=>{for(let i of Object.getOwnPropertyNames(e.properties))if(kmt(r,e.properties[i])===fe.False)return fe.False;return fe.True})():fe.False}function zVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Nr(zhe(e),zhe(t)):fe.False}function VVn(e,t){let n=Q.IsRegExp(e)?Vf():e,r=Q.IsRegExp(t)?Vf():t;return Nr(n,r)}function Imt(e,t){return Q.IsLiteral(e)&&hc.IsString(e.const)||Q.IsString(e)?fe.True:fe.False}function WVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Fd(e,t):Q.IsString(t)?fe.True:fe.False}function KVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Fd(e,t):Q.IsSymbol(t)?fe.True:fe.False}function ZVn(e,t){return Q.IsTemplateLiteral(e)?Nr(VT(e),t):Q.IsTemplateLiteral(t)?Nr(e,VT(t)):t0("Invalid fallthrough for TemplateLiteral")}function YVn(e,t){return Q.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Nr(n,t.items)===fe.True)}function JVn(e,t){return Q.IsNever(e)?fe.True:Q.IsUnknown(e)?fe.False:Q.IsAny(e)?fe.Union:fe.False}function XVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)&&J4(t)||Q.IsArray(t)&&YVn(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)=>Nr(n,t.items[r])===fe.True)?fe.True:fe.False:fe.False}function QVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Fd(e,t):Q.IsUint8Array(t)?fe.True:fe.False}function $Vn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Fd(e,t):Q.IsVoid(t)?n2n(e,t):Q.IsUndefined(t)?fe.True:fe.False}function Whe(e,t){return t.anyOf.some(n=>Nr(e,n)===fe.True)?fe.True:fe.False}function e2n(e,t){return e.anyOf.every(n=>Nr(n,t)===fe.True)?fe.True:fe.False}function xmt(e,t){return fe.True}function t2n(e,t){return Q.IsNever(t)?Rmt(e,t):Q.IsIntersect(t)?Y4(e,t):Q.IsUnion(t)?Whe(e,t):Q.IsAny(t)?Vhe(e,t):Q.IsString(t)?Imt(e,t):Q.IsNumber(t)?wmt(e,t):Q.IsInteger(t)?Amt(e,t):Q.IsBoolean(t)?vmt(e,t):Q.IsArray(t)?bVn(e,t):Q.IsTuple(t)?JVn(e,t):Q.IsObject(t)?yc(e,t):Q.IsUnknown(t)?fe.True:fe.False}function n2n(e,t){return Q.IsUndefined(e)||Q.IsUndefined(e)?fe.True:fe.False}function r2n(e,t){return Q.IsIntersect(t)?Y4(e,t):Q.IsUnion(t)?Whe(e,t):Q.IsUnknown(t)?xmt(e,t):Q.IsAny(t)?Vhe(e,t):Q.IsObject(t)?yc(e,t):Q.IsVoid(t)?fe.True:fe.False}function Nr(e,t){return Q.IsTemplateLiteral(e)||Q.IsTemplateLiteral(t)?ZVn(e,t):Q.IsRegExp(e)||Q.IsRegExp(t)?VVn(e,t):Q.IsNot(e)||Q.IsNot(t)?CVn(e,t):Q.IsAny(e)?EVn(e,t):Q.IsArray(e)?_Vn(e,t):Q.IsBigInt(e)?vVn(e,t):Q.IsBoolean(e)?AVn(e,t):Q.IsAsyncIterator(e)?TVn(e,t):Q.IsConstructor(e)?RVn(e,t):Q.IsDate(e)?wVn(e,t):Q.IsFunction(e)?kVn(e,t):Q.IsInteger(e)?IVn(e,t):Q.IsIntersect(e)?xVn(e,t):Q.IsIterator(e)?OVn(e,t):Q.IsLiteral(e)?NVn(e,t):Q.IsNever(e)?PVn(e,t):Q.IsNull(e)?MVn(e,t):Q.IsNumber(e)?DVn(e,t):Q.IsObject(e)?BVn(e,t):Q.IsRecord(e)?zVn(e,t):Q.IsString(e)?WVn(e,t):Q.IsSymbol(e)?KVn(e,t):Q.IsTuple(e)?XVn(e,t):Q.IsPromise(e)?GVn(e,t):Q.IsUint8Array(e)?QVn(e,t):Q.IsUndefined(e)?$Vn(e,t):Q.IsUnion(e)?e2n(e,t):Q.IsUnknown(e)?t2n(e,t):Q.IsVoid(e)?r2n(e,t):t0(`Unknown left type operand '${e[Oe]}'`)}function kE(e,t){return Nr(e,t)}var Bhe,fe,Khe=v(()=>{cL();BT();zT();JI();e0();xg();oL();Lt();Uh();che();Bhe=class extends Yo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(fe||(fe={}))});function i2n(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 s2n(e,t,n,r,i){return i2n(e.properties,t,n,r,i)}function Omt(e,t,n,r,i){let s=s2n(e,t,n,r,i);return Qn(s)}var Zhe=v(()=>{vo();X4();Uu()});function o2n(e,t,n,r){let i=kE(e,t);return i===fe.Union?yr([n,r]):i===fe.True?n:r}function n0(e,t,n,r,i){return Ai(e)?Omt(e,t,n,r,i):Rl(e)?de(Nmt(e,t,n,r,i)):de(o2n(e,t,n,r),i)}var X4=v(()=>{Ot();oo();Khe();Yhe();Zhe();Xn()});function a2n(e,t,n,r,i){return{[e]:n0(cr(e),t,n,r,vi(i))}}function c2n(e,t,n,r,i){return e.reduce((s,o)=>({...s,...a2n(o,t,n,r,i)}),{})}function u2n(e,t,n,r,i){return c2n(e.keys,t,n,r,i)}function Nmt(e,t,n,r,i){let s=u2n(e,t,n,r,i);return Qn(s)}var Yhe=v(()=>{vo();ju();X4();Uu()});var Pmt=v(()=>{});var _L=v(()=>{Khe();Yhe();Zhe();Pmt();X4()});function Cmt(e,t){return r0(VT(e),t)}var Jhe=v(()=>{Q4();xg()});function l2n(e,t){let n=e.filter(r=>kE(r,t)===fe.False);return n.length===1?n[0]:yr(n)}function r0(e,t,n={}){return wl(e)?de(Cmt(e,t),n):Ai(e)?de(Mmt(e,t),n):de(Zn(e)?l2n(e.anyOf,t):kE(e,t)!==fe.False?Yn():e,n)}var Q4=v(()=>{Ot();oo();wa();_L();Xhe();Jhe();Xn()});function d2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=r0(e[r],t);return n}function f2n(e,t){return d2n(e.properties,t)}function Mmt(e,t){let n=f2n(e,t);return Qn(n)}var Xhe=v(()=>{vo();Q4()});var Qhe=v(()=>{Xhe();Jhe();Q4()});function Dmt(e,t){return i0(VT(e),t)}var $he=v(()=>{$4();xg()});function p2n(e,t){let n=e.filter(r=>kE(r,t)!==fe.False);return n.length===1?n[0]:yr(n)}function i0(e,t,n){return wl(e)?de(Dmt(e,t),n):Ai(e)?de(Lmt(e,t),n):de(Zn(e)?p2n(e.anyOf,t):kE(e,t)!==fe.False?e:Yn(),n)}var $4=v(()=>{Ot();oo();wa();_L();eme();$he();Xn()});function h2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=i0(e[r],t);return n}function m2n(e,t){return h2n(e.properties,t)}function Lmt(e,t){let n=m2n(e,t);return Qn(n)}var eme=v(()=>{vo();$4()});var tme=v(()=>{eme();$he();$4()});function Umt(e,t){return qf(e)?de(e.returns,t):Yn(t)}var Fmt=v(()=>{Ot();wa();Xn()});var nme=v(()=>{Fmt()});function eZ(e){return qu(mc(e))}var jmt=v(()=>{WT();kg()});var tZ=v(()=>{jmt()});function ZT(e,t,n){return de({[Oe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function rme(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Pd]:"Record"})}function g2n(e,t,n){return Aht(e)?rme(Hu(e),t,n):ZT(e.pattern,t,n)}function y2n(e,t,n){return rme(Hu(yr(e)),t,n)}function S2n(e,t,n){return rme([e.toString()],t,n)}function E2n(e,t,n){return ZT(e.source,t,n)}function b2n(e,t,n){let r=Hs(e.pattern)?_E:e.pattern;return ZT(r,t,n)}function _2n(e,t,n){return ZT(_E,t,n)}function T2n(e,t,n){return ZT($pt,t,n)}function v2n(e,t,n){return Or({true:t,false:t},n)}function A2n(e,t,n){return ZT(bE,t,n)}function R2n(e,t,n){return ZT(bE,t,n)}function nZ(e,t,n={}){return Zn(e)?y2n(e.anyOf,t,n):wl(e)?g2n(e,t,n):Al(e)?S2n(e.const,t,n):vg(e)?v2n(e,t,n):Gf(e)?A2n(e,t,n):zf(e)?R2n(e,t,n):rhe(e)?E2n(e,t,n):Ag(e)?b2n(e,t,n):the(e)?_2n(e,t,n):SE(e)?T2n(e,t,n):Yn(n)}function rZ(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function Hmt(e){let t=rZ(e);return t===_E?Vf():t===bE?Cd():Vf({pattern:t})}function iZ(e){return e.patternProperties[rZ(e)]}var qmt=v(()=>{Ot();Lt();wa();zT();xl();JI();oo();xg();oL();Hh();Zc();Xn()});var TL=v(()=>{qmt()});function w2n(e,t){return t.parameters=vL(e,t.parameters),t.returns=Wf(e,t.returns),t}function k2n(e,t){return t.parameters=vL(e,t.parameters),t.returns=Wf(e,t.returns),t}function I2n(e,t){return t.allOf=vL(e,t.allOf),t}function x2n(e,t){return t.anyOf=vL(e,t.anyOf),t}function O2n(e,t){return Hs(t.items)||(t.items=vL(e,t.items)),t}function N2n(e,t){return t.items=Wf(e,t.items),t}function P2n(e,t){return t.items=Wf(e,t.items),t}function C2n(e,t){return t.items=Wf(e,t.items),t}function M2n(e,t){return t.item=Wf(e,t.item),t}function D2n(e,t){let n=j2n(e,t.properties);return{...t,...Or(n)}}function L2n(e,t){let n=Wf(e,Hmt(t)),r=Wf(e,iZ(t)),i=nZ(n,r);return{...t,...i}}function U2n(e,t){return t.index in e?e[t.index]:wE()}function F2n(e,t){let n=GI(t),r=Fu(t),i=Wf(e,t);return n&&r?eZ(i):n&&!r?qu(i):!n&&r?mc(i):i}function j2n(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:F2n(e,t[r])}),{})}function vL(e,t){return t.map(n=>Wf(e,n))}function Wf(e,t){return qf(t)?w2n(e,t):Bf(t)?k2n(e,t):rs(t)?I2n(e,t):Zn(t)?x2n(e,t):kl(t)?O2n(e,t):jf(t)?N2n(e,t):UT(t)?P2n(e,t):jT(t)?C2n(e,t):HT(t)?M2n(e,t):qs(t)?D2n(e,t):qT(t)?L2n(e,t):nhe(t)?U2n(e,t):t}function Bmt(e,t){return Wf(t,BI(e))}var Gmt=v(()=>{T4();e0();tZ();WT();kg();xl();TL();Zc();Xn()});var ime=v(()=>{Gmt()});function zmt(e){return de({[Oe]:"Integer",type:"integer"},e)}var Vmt=v(()=>{Ot();Lt()});var sme=v(()=>{Vmt()});function H2n(e,t,n){return{[e]:Kf(cr(e),t,vi(n))}}function q2n(e,t,n){return e.reduce((i,s)=>({...i,...H2n(s,t,n)}),{})}function B2n(e,t,n){return q2n(e.keys,t,n)}function Wmt(e,t,n){let r=B2n(e,t,n);return Qn(r)}var ome=v(()=>{vo();YT();ju();Uu()});function G2n(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function z2n(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function V2n(e){return e.toUpperCase()}function W2n(e){return e.toLowerCase()}function K2n(e,t,n){let r=ZI(e.pattern);if(!GT(r))return{...e,pattern:Kmt(e.pattern,t)};let o=[...hL(r)].map(u=>cr(u)),a=Zmt(o,t),c=yr(a);return P4([c],n)}function Kmt(e,t){return typeof e=="string"?t==="Uncapitalize"?G2n(e):t==="Capitalize"?z2n(e):t==="Uppercase"?V2n(e):t==="Lowercase"?W2n(e):e:e.toString()}function Zmt(e,t){return e.map(n=>Kf(n,t))}function Kf(e,t,n={}){return Rl(e)?Wmt(e,t,n):wl(e)?K2n(e,t,n):Zn(e)?yr(Zmt(e.anyOf,t),n):Al(e)?cr(Kmt(e.const,t),n):de(e,n)}var YT=v(()=>{Ot();xg();ome();ju();oo();Xn()});function Ymt(e,t={}){return Kf(e,"Capitalize",t)}var Jmt=v(()=>{YT()});function Xmt(e,t={}){return Kf(e,"Lowercase",t)}var Qmt=v(()=>{YT()});function $mt(e,t={}){return Kf(e,"Uncapitalize",t)}var egt=v(()=>{YT()});function tgt(e,t={}){return Kf(e,"Uppercase",t)}var ngt=v(()=>{YT()});var ame=v(()=>{Jmt();ome();YT();Qmt();egt();ngt()});function Z2n(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=IE(e[i],t,vi(n));return r}function Y2n(e,t,n){return Z2n(e.properties,t,n)}function rgt(e,t,n){let r=Y2n(e,t,n);return Qn(r)}var cme=v(()=>{vo();sZ();Uu()});function J2n(e,t){return e.map(n=>ume(n,t))}function X2n(e,t){return e.map(n=>ume(n,t))}function Q2n(e,t){let{[t]:n,...r}=e;return r}function $2n(e,t){return t.reduce((n,r)=>Q2n(n,r),e)}function eWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=$2n(n,t);return Or(i,r)}function tWn(e){let t=e.reduce((n,r)=>A4(r)?[...n,cr(r)]:n,[]);return yr(t)}function ume(e,t){return rs(e)?gc(J2n(e.allOf,t)):Zn(e)?yr(X2n(e.anyOf,t)):qs(e)?eWn(e,t,e.properties):Or({})}function IE(e,t,n){let r=js(t)?tWn(t):t,i=Il(t)?Hu(t):t,s=_s(e),o=_s(t);return Ai(e)?rgt(e,i,n):Rl(t)?igt(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({...ume(e,i),...n})}var sZ=v(()=>{Ot();w4();$D();vE();ju();Hh();Md();oo();xl();lme();cme();Xn();Zc()});function nWn(e,t,n){return{[t]:IE(e,[t],vi(n))}}function rWn(e,t,n){return t.reduce((r,i)=>({...r,...nWn(e,i,n)}),{})}function iWn(e,t,n){return rWn(e,t.keys,n)}function igt(e,t,n){let r=iWn(e,t,n);return Qn(r)}var lme=v(()=>{vo();sZ();Uu()});var oZ=v(()=>{lme();cme();sZ()});function sWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=xE(e[i],t,vi(n));return r}function oWn(e,t,n){return sWn(e.properties,t,n)}function sgt(e,t,n){let r=oWn(e,t,n);return Qn(r)}var dme=v(()=>{vo();aZ();Uu()});function aWn(e,t){return e.map(n=>fme(n,t))}function cWn(e,t){return e.map(n=>fme(n,t))}function uWn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function lWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=uWn(n,t);return Or(i,r)}function dWn(e){let t=e.reduce((n,r)=>A4(r)?[...n,cr(r)]:n,[]);return yr(t)}function fme(e,t){return rs(e)?gc(aWn(e.allOf,t)):Zn(e)?yr(cWn(e.anyOf,t)):qs(e)?lWn(e,t,e.properties):Or({})}function xE(e,t,n){let r=js(t)?dWn(t):t,i=Il(t)?Hu(t):t,s=_s(e),o=_s(t);return Ai(e)?sgt(e,i,n):Rl(t)?ogt(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({...fme(e,i),...n})}var aZ=v(()=>{Ot();w4();vE();Md();ju();xl();oo();Hh();$D();Xn();Zc();pme();dme()});function fWn(e,t,n){return{[t]:xE(e,[t],vi(n))}}function pWn(e,t,n){return t.reduce((r,i)=>({...r,...fWn(e,i,n)}),{})}function hWn(e,t,n){return pWn(e,t.keys,n)}function ogt(e,t,n){let r=hWn(e,t,n);return Qn(r)}var pme=v(()=>{vo();aZ();Uu()});var cZ=v(()=>{pme();dme();aZ()});function mWn(e,t){return oi("Partial",[oi(e,t)])}function gWn(e){return oi("Partial",[qh(e)])}function yWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=mc(e[n]);return t}function SWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=yWn(t);return Or(r,n)}function agt(e){return e.map(t=>cgt(t))}function cgt(e){return Hf(e)?mWn(e.target,e.parameters):_s(e)?gWn(e.$ref):rs(e)?gc(agt(e.allOf)):Zn(e)?yr(agt(e.anyOf)):qs(e)?SWn(e,e.properties):FT(e)||vg(e)||Gf(e)||Al(e)||eL(e)||zf(e)||Ag(e)||tL(e)||nL(e)?e:Or({})}function s0(e,t){return Ai(e)?ugt(e,t):de({...cgt(e),...t})}var hme=v(()=>{Ot();vE();kg();xl();Md();oo();KT();wg();Lt();mme();Xn()});function EWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=s0(e[r],vi(t));return n}function bWn(e,t){return EWn(e.properties,t)}function ugt(e,t){let n=bWn(e,t);return Qn(n)}var mme=v(()=>{vo();hme();Uu()});var uZ=v(()=>{mme();hme()});function _Wn(e,t){return oi("Required",[oi(e,t)])}function TWn(e){return oi("Required",[qh(e)])}function vWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[Ra]);return t}function AWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=vWn(t);return Or(r,n)}function lgt(e){return e.map(t=>dgt(t))}function dgt(e){return Hf(e)?_Wn(e.target,e.parameters):_s(e)?TWn(e.$ref):rs(e)?gc(lgt(e.allOf)):Zn(e)?yr(lgt(e.anyOf)):qs(e)?AWn(e,e.properties):FT(e)||vg(e)||Gf(e)||Al(e)||eL(e)||zf(e)||Ag(e)||tL(e)||nL(e)?e:Or({})}function o0(e,t){return Ai(e)?fgt(e,t):de({...dgt(e),...t})}var gme=v(()=>{Ot();vE();xl();Md();oo();KT();Lt();wg();yme();Xn()});function RWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=o0(e[r],t);return n}function wWn(e,t){return RWn(e.properties,t)}function fgt(e,t){let n=wWn(e,t);return Qn(n)}var yme=v(()=>{vo();gme()});var lZ=v(()=>{yme();gme()});function kWn(e,t){return t.map(n=>_s(n)?Sme(e,n.$ref):Ol(e,n))}function Sme(e,t){return t in e?_s(e[t])?Sme(e,e[t].$ref):Ol(e,e[t]):Yn()}function IWn(e){return QI(e[0])}function xWn(e){return AE(e[0],e[1])}function OWn(e){return $I(e[0])}function NWn(e){return s0(e[0])}function PWn(e){return IE(e[0],e[1])}function CWn(e){return xE(e[0],e[1])}function MWn(e){return o0(e[0])}function DWn(e,t,n){let r=kWn(e,n);return t==="Awaited"?IWn(r):t==="Index"?xWn(r):t==="KeyOf"?OWn(r):t==="Partial"?NWn(r):t==="Omit"?PWn(r):t==="Pick"?CWn(r):t==="Required"?MWn(r):Yn()}function LWn(e,t){return zI(Ol(e,t))}function UWn(e,t){return VI(Ol(e,t))}function FWn(e,t,n){return WI(AL(e,t),Ol(e,n))}function jWn(e,t,n){return Fh(AL(e,t),Ol(e,n))}function HWn(e,t){return gc(AL(e,t))}function qWn(e,t){return XI(Ol(e,t))}function BWn(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Ol(e,t[r])}),{}))}function GWn(e,t){let[n,r]=[Ol(e,iZ(t)),rZ(t)],i=BI(t);return i.patternProperties[r]=n,i}function zWn(e,t){return _s(t)?{...Sme(e,t.$ref),[so]:t[so]}:t}function VWn(e,t){return Dd(AL(e,t))}function WWn(e,t){return yr(AL(e,t))}function AL(e,t){return t.map(n=>Ol(e,n))}function Ol(e,t){return Fu(t)?de(Ol(e,is(t,[Ra])),t):GI(t)?de(Ol(e,is(t,[Ff])),t):EE(t)?de(zWn(e,t),t):jf(t)?de(LWn(e,t.items),t):UT(t)?de(UWn(e,t.items),t):Hf(t)?de(DWn(e,t.target,t.parameters)):qf(t)?de(FWn(e,t.parameters,t.returns),t):Bf(t)?de(jWn(e,t.parameters,t.returns),t):rs(t)?de(HWn(e,t.allOf),t):jT(t)?de(qWn(e,t.items),t):qs(t)?de(BWn(e,t.properties),t):qT(t)?de(GWn(e,t)):kl(t)?de(VWn(e,t.items||[]),t):Zn(t)?de(WWn(e,t.anyOf),t):t}function KWn(e,t){return t in e?Ol(e,e[t]):Yn()}function pgt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:KWn(e,n)}),{})}var hgt=v(()=>{Tg();ehe();wg();uL();U4();lL();dL();Hh();BT();Md();gL();bL();xl();oZ();cZ();wa();uZ();TL();lZ();RE();oo();Lt();Xn()});function mgt(e){return new Eme(e)}var Eme,ggt=v(()=>{Tg();Lt();hgt();Eme=class{constructor(t){let n=pgt(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 bme=v(()=>{ggt()});function ygt(e,t){return de({[Oe]:"Not",not:e},t)}var Sgt=v(()=>{Ot();Lt()});var _me=v(()=>{Sgt()});function Egt(e,t){return Bf(e)?Dd(e.parameters,t):Yn()}var bgt=v(()=>{RE();wa();Xn()});var Tme=v(()=>{bgt()});function _gt(e,t={}){Hs(t.$id)&&(t.$id=`T${ZWn++}`);let n=BI(e({[Oe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,de({[Pd]:"Recursive",...n},t)}var ZWn,Tgt=v(()=>{T4();Ot();Zc();Lt();ZWn=0});var vme=v(()=>{Tgt()});function vgt(e,t){let n=Yr(e)?new globalThis.RegExp(e):e;return de({[Oe]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var Agt=v(()=>{Ot();Zc();Lt()});var Ame=v(()=>{Agt()});function YWn(e){return rs(e)?e.allOf:Zn(e)?e.anyOf:kl(e)?e.items??[]:[]}function Rgt(e){return YWn(e)}var wgt=v(()=>{Xn()});var Rme=v(()=>{wgt()});function kgt(e,t){return Bf(e)?de(e.returns,t):Yn(t)}var Igt=v(()=>{Ot();wa();Xn()});var wme=v(()=>{Igt()});var xgt=v(()=>{});var Ogt=v(()=>{});var Ngt=v(()=>{xgt();Ogt()});var Pgt=v(()=>{});var Cgt=v(()=>{Pgt()});function Mgt(e){return new kme(e)}var kme,Ime,Dgt=v(()=>{Lt();Xn();kme=class{constructor(t){this.schema=t}Decode(t){return new Ime(this.schema,t)}},Ime=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 EE(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var xme=v(()=>{Dgt()});function Lgt(e={}){return de({[Oe]:e[Oe]??"Unsafe"},e)}var Ugt=v(()=>{Ot();Lt()});var Ome=v(()=>{Ugt()});function Fgt(e){return de({[Oe]:"Void",type:"void"},e)}var jgt=v(()=>{Ot();Lt()});var Nme=v(()=>{jgt()});var Pme={};Rr(Pme,{Any:()=>TE,Argument:()=>dht,Array:()=>zI,AsyncIterator:()=>VI,Awaited:()=>QI,BigInt:()=>YI,Boolean:()=>O4,Capitalize:()=>Ymt,Composite:()=>smt,Const:()=>pmt,Constructor:()=>WI,ConstructorParameters:()=>mmt,Date:()=>F4,Enum:()=>ymt,Exclude:()=>r0,Extends:()=>n0,Extract:()=>i0,Function:()=>Fh,Index:()=>AE,InstanceType:()=>Umt,Instantiate:()=>Bmt,Integer:()=>zmt,Intersect:()=>gc,Iterator:()=>XI,KeyOf:()=>$I,Literal:()=>cr,Lowercase:()=>Xmt,Mapped:()=>Wht,Module:()=>mgt,Never:()=>Yn,Not:()=>ygt,Null:()=>H4,Number:()=>Cd,Object:()=>Or,Omit:()=>IE,Optional:()=>mc,Parameters:()=>Egt,Partial:()=>s0,Pick:()=>xE,Promise:()=>D4,Readonly:()=>qu,ReadonlyOptional:()=>eZ,Record:()=>nZ,Recursive:()=>_gt,Ref:()=>qh,RegExp:()=>vgt,Required:()=>o0,Rest:()=>Rgt,ReturnType:()=>kgt,String:()=>Vf,Symbol:()=>B4,TemplateLiteral:()=>P4,Transform:()=>Mgt,Tuple:()=>Dd,Uint8Array:()=>W4,Uncapitalize:()=>$mt,Undefined:()=>z4,Union:()=>yr,Unknown:()=>wE,Unsafe:()=>Lgt,Uppercase:()=>tgt,Void:()=>Fgt});var Hgt=v(()=>{cL();dhe();uL();lL();U4();mL();N4();Lhe();Fhe();dL();jhe();j4();Hhe();Qhe();_L();tme();BT();Hh();nme();ime();sme();Md();ame();gL();bL();ju();vo();bme();wa();_me();q4();zT();xl();oZ();kg();Tme();uZ();cZ();L4();WT();tZ();TL();vme();KT();Ame();lZ();Rme();wme();JI();G4();xg();xme();RE();K4();V4();oo();e0();Ome();Nme()});var I,qgt=v(()=>{Hgt();I=Pme});var Ao=v(()=>{ehe();Tg();Uh();che();Qpt();oL();rht();aL();Lt();cL();uL();dhe();lL();U4();mL();N4();Lhe();Fhe();dL();jhe();j4();Hhe();Qhe();_L();tme();BT();Hh();nme();ime();sme();Md();gL();ame();bL();ju();bme();vo();wa();_me();q4();zT();xl();oZ();kg();Tme();uZ();cZ();L4();WT();tZ();TL();vme();KT();Ame();lZ();Rme();wme();Ngt();Cgt();JI();G4();xg();xme();RE();K4();V4();oo();e0();Ome();Nme();qgt()});var JWn,Cme,Mme=v(()=>{"use strict";Ao();JWn=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}),Cme=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 Bgt,He,ka=v(()=>{"use strict";Bgt=Se(B_(),1),He=new Bgt.Ajv({allErrors:!0,strict:!1})});function Yc(e){switch(e){case"blocker":return 0;case"high":return 1;case"medium":return 2;case"low":return 3;default:return 2}}function Ggt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return RL.includes(e)?Yc(e):Yc("high")}function a0(e){return typeof e!="string"||e.length===0?!0:Yc(e)<=Ggt()}var dZ,RL,zgt,Vgt,XWn,QWn,$Wn,eKn,fZ,Dme,tKn,Kui,wL,kL,Wgt=v(()=>{"use strict";Ao();ka();dZ=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],RL=["blocker","high","medium","low"];zgt="^(?:FB-)?\\d+$",Vgt=["iterations","closed_at"],XWn=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}),QWn=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),$Wn=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...dZ]})),severity:I.Optional(I.String({enum:[...RL]})),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(XWn),closure_reply:I.Optional(QWn),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...Vgt]}},additionalProperties:!0}),eKn=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}),fZ=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:[...RL],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${RL.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:[...dZ],description:`Source of the feedback. One of: ${dZ.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(eKn),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}),Dme=He.compile(fZ),tKn=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:zgt}),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}),Kui=He.compile(tKn),wL=Vgt,kL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var c0,Lme,pZ,Ume,hZ,Fme,Kgt=v(()=>{"use strict";Ao();ka();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}),Lme=He.compile(c0),pZ=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}),Ume=He.compile(pZ),hZ=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}),Fme=He.compile(hZ)});var IL,u0,jme,Zgt=v(()=>{"use strict";Ao();ka();IL=["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:[...IL],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}),jme=He.compile(u0)});var l0,Hme,Ygt=v(()=>{"use strict";Ao();ka();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}),Hme=He.compile(l0)});var Bh,Og,mZ,qme,gZ,Bme,yZ,Gme,SZ,zme,EZ,Vme,bZ,Wme,_Z,Kme,TZ,Zme,vZ,Yme,AZ,Jme,Jgt=v(()=>{"use strict";Ao();ka();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."})},mZ=I.Object({...Og,state_file:Bh},{additionalProperties:!1}),qme=He.compile(mZ),gZ=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}),Bme=He.compile(gZ),yZ=I.Object({...Og,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:Bh},{additionalProperties:!1}),Gme=He.compile(yZ),SZ=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}),zme=He.compile(SZ),EZ=I.Object({...Og,state_file:Bh},{additionalProperties:!1}),Vme=He.compile(EZ),bZ=I.Object({...Og,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:Bh},{additionalProperties:!1}),Wme=He.compile(bZ),_Z=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}),Kme=He.compile(_Z),TZ=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}),Zme=He.compile(TZ),vZ=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}),Yme=He.compile(vZ),AZ=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}),Jme=He.compile(AZ)});var RZ,xL,wZ,Xme,kZ,Qme,IZ,$me,Xgt=v(()=>{"use strict";Ao();ka();RZ=I.Optional(I.String()),xL=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:RZ},{additionalProperties:!1}),wZ=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:RZ},{additionalProperties:!1}),Xme=He.compile(wZ),kZ=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:RZ},{additionalProperties:!1}),Qme=He.compile(kZ),IZ=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:RZ},{additionalProperties:!1}),$me=He.compile(IZ)});var Ro,Qgt,xZ,ege,OZ,tge,NZ,nge,PZ,rge,OL,NL,CZ,ige,MZ,sge,DZ,oge,LZ,age,UZ,cge,FZ,uge,jZ,lge,HZ,dge,qZ,fge,BZ,pge,GZ,hge,d0,mge,zZ,gge,VZ,yge,WZ,Sge,$gt=v(()=>{"use strict";Ao();ka();Ro=I.Optional(I.String()),Qgt=I.Object({state_file:Ro},{additionalProperties:!1}),xZ=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:Ro},{additionalProperties:!1}),ege=He.compile(xZ),OZ=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:Ro},{additionalProperties:!1}),tge=He.compile(OZ),NZ=I.Object({intent:I.String({minLength:1}),state_file:Ro},{additionalProperties:!1}),nge=He.compile(NZ),PZ=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:Ro},{additionalProperties:!1}),rge=He.compile(PZ),OL=Qgt,NL=He.compile(Qgt),CZ=I.Object({studio:I.String({minLength:1}),state_file:Ro},{additionalProperties:!1}),ige=He.compile(CZ),MZ=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:Ro},{additionalProperties:!1}),sge=He.compile(MZ),DZ=I.Object({field:I.String({minLength:1,description:"Dot-separated path (e.g. 'studio', 'providers.ticketing.type', 'providers.spec.config.space')"}),state_file:Ro},{additionalProperties:!1}),oge=He.compile(DZ),LZ=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:Ro},{additionalProperties:!1}),age=He.compile(LZ),UZ=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:Ro},{additionalProperties:!1}),cge=He.compile(UZ),FZ=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:Ro},{additionalProperties:!1}),uge=He.compile(FZ),jZ=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:Ro},{additionalProperties:!1}),lge=He.compile(jZ),HZ=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:Ro},{additionalProperties:!1}),dge=He.compile(HZ),qZ=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:Ro},{additionalProperties:!1}),fge=He.compile(qZ),BZ=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:Ro},{additionalProperties:!1}),pge=He.compile(BZ),GZ=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:Ro},{additionalProperties:!1}),hge=He.compile(GZ),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}),mge=He.compile(d0),zZ=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:Ro},{additionalProperties:!1}),gge=He.compile(zZ),VZ=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:Ro},{additionalProperties:!1}),yge=He.compile(VZ),WZ=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:Ro},{additionalProperties:!1}),Sge=He.compile(WZ)});var f0,Ege,eyt=v(()=>{"use strict";Ao();ka();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}),Ege=He.compile(f0)});var p0,bge,h0,_ge,m0,Tge,g0,vge,tyt=v(()=>{"use strict";Ao();ka();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}),bge=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}),_ge=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}),Tge=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}),vge=He.compile(g0)});var nyt,y0,Age,S0,Rge,E0,wge,KZ,kge,ZZ,Ige,b0,xge,ryt=v(()=>{"use strict";Ao();ka();nyt=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}),Age=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}),Rge=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}),wge=He.compile(E0),KZ=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:nyt},{additionalProperties:!1}),kge=He.compile(KZ),ZZ=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:nyt},{additionalProperties:!1}),Ige=He.compile(ZZ),b0=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}),xge=He.compile(b0)});var YZ,Oge,JZ,Nge,XZ,Pge,QZ,Cge,$Z,Mge,e9,Dge,t9,Lge,iyt=v(()=>{"use strict";Ao();ka();YZ=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}),Oge=He.compile(YZ),JZ=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),Nge=He.compile(JZ),XZ=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),Pge=He.compile(XZ),QZ=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}),Cge=He.compile(QZ),$Z=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}),Mge=He.compile($Z),e9=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}),Dge=He.compile(e9),t9=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}),Lge=He.compile(t9)});var n9,OE,r9,Uge,i9,Fge,s9,jge,Hge,o9,qge,a9,Bge,c9,Gge,u9,zge,l9,Vge,d9,Wge,_0,Kge,syt=v(()=>{"use strict";Ao();ka();n9={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."})},OE=I.Optional(I.String()),r9=I.Object({...n9,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:OE},{additionalProperties:!1}),Uge=He.compile(r9),i9=I.Object({...n9,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}),Fge=He.compile(i9),s9=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:OE},{additionalProperties:!1}),jge=He.compile(s9),Hge=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."})),o9=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Hge,state_file:OE},{additionalProperties:!1}),qge=He.compile(o9),a9=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Hge,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:OE},{additionalProperties:!1}),Bge=He.compile(a9),c9=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Hge,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:OE},{additionalProperties:!1}),Gge=He.compile(c9),u9=I.Object({...n9,state_file:OE},{additionalProperties:!1}),zge=He.compile(u9),l9=I.Object({...n9,state_file:OE},{additionalProperties:!1}),Vge=He.compile(l9),d9=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:OE},{additionalProperties:!1}),Wge=He.compile(d9),_0=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}),Kge=He.compile(_0)});var Zge,nKn,f9,rKn,PL,T0,iKn,JT,XT,p9,Yge=v(()=>{"use strict";Ao();ka();Mme();Zge=["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"],nKn=["draft","ready","failed"],f9=["continuous","discrete","autopilot","discrete-hybrid","quick"],rKn=I.Record(I.String(),I.Union([Cme,I.Null()])),PL=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...f9]})),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:[...nKn]})),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:[...Zge]}},additionalProperties:!0}),T0=He.compile(PL),iKn=new Set(Zge),JT=Object.keys(PL.properties??{}).filter(e=>!iKn.has(e)),XT=Zge,p9=["studio","plugin_version","follows"]});var sKn,oyt=v(()=>{"use strict";Ao();sKn=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 Jge,Xge,ayt=v(()=>{"use strict";Ao();Jge=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),Xge=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var h9,Qge,cyt=v(()=>{"use strict";Ao();h9=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}),Qge=Object.keys(h9.properties??{})});var lyt,uyt,QT,Ng,NE,Zf,dyt=v(()=>{"use strict";Ao();ka();lyt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],uyt="^[^\\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:uyt}),{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:uyt}),{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:[...lyt]}},additionalProperties:!0}),Ng=He.compile(QT),NE=Object.keys(QT.properties??{}),Zf=lyt});var ji=v(()=>{"use strict";Mme();Wgt();Kgt();Zgt();Ygt();Jgt();Xgt();$gt();eyt();tyt();ryt();iyt();syt();Yge();oyt();ayt();cyt();dyt()});var hyt={};Rr(hyt,{DIR_INVENTORY_SKIP:()=>y9,bodyMatchesStoredHash:()=>CL,bodySha256:()=>Pg,buildApprovalRecord:()=>jd,buildOutputWitnesses:()=>cKn,buildReviewRecord:()=>Nl,fileSha256:()=>v0,isTextBodyExtension:()=>g9,normalizeInputPath:()=>ML,outputSha256:()=>PE,resolveInputWitnesses:()=>S9});import{createHash as m9}from"node:crypto";import{existsSync as $T,readdirSync as oKn,readFileSync as $ge,statSync as fyt}from"node:fs";import{join as ev}from"node:path";function Pg(e){if(!$T(e))return"";let t=$ge(e,"utf8"),n=t;try{n=(0,eye.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} -`),m9("sha256").update(n,"utf8").digest("hex")}function v0(e){if(!$T(e))return"";let t=$ge(e);return m9("sha256").update(t).digest("hex")}function CL(e,t){if(!$T(e))return!0;let n=Pg(e);if(n&&n===t)return!0;let r=$ge(e,"utf8"),i=r;try{i=(0,eye.default)(r).content}catch{i=r}if(m9("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` -`)?i.slice(0,-1):i;return o===i?!1:m9("sha256").update(o,"utf8").digest("hex")===t}function PE(e){return $T(e)?g9(e)?Pg(e):v0(e):""}function g9(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return aKn.has(t)}function cKn(e,t,n){let r={},i=n??pyt(e);for(let s of t){let o=s.startsWith("stages/")?ev(e,s):ev(i,s),a=PE(o);a&&(r[s]=a)}return r}function pyt(e){return ev(e,"..","..","..")}function ML(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 uKn(e){let t={},n=[];try{n=oKn(e)}catch{return t}for(let r of n){if(r.startsWith(".")||y9.has(r))continue;let i=ev(e,r);try{if(!fyt(i).isFile())continue}catch{continue}let s=v0(i);s&&(t[r]=s)}return t}function S9(e){let t=e.repoRoot??pyt(e.intentDir),n={files:{},dirs:{}},r=ev(e.intentDir,"intent.md");if($T(r)){let i=Pg(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=ML(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=fyt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=uKn(a);else{let u=PE(a);u&&(n.files[s]=u)}}return n}function Nl(e,t){let n={at:new Date().toISOString(),body_sha256:Pg(e)};return t?{...n,input_witnesses:S9({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function jd(e,t){return{at:new Date().toISOString()}}var eye,aKn,y9,Yf=v(()=>{"use strict";eye=Se(Xt(),1);aKn=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);y9=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 myt,readFileSync as tye}from"node:fs";import{join as Gh}from"node:path";function lKn(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function nye(e,t){return`${e}:${t}`}function dKn(e){let t=new Map;for(let n of e){let r=nye(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(nye(d,f))}return t}function pKn(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Pg(e):PE(e)}function hKn(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 mKn(e){let t=Gh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!tv(t))return;let n=tye(t,"utf8"),i=(0,E9.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&&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 gKn(e){let t=Gh(e.intentDir,"intent.md");if(!tv(t))return;let n=tye(t,"utf8"),s=(0,E9.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 yKn(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} @@ -653,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 yyt(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=dKn(e.events);n.groups_total=r.length;let i=fKn(e.intentDir),s=i.size>=gyt;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 ${gyt}. 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=hKn(o.file,e.intentDir,t),c=a?pKn(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(gKn({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}mKn({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")&&!lKn(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=nye(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{Xo(e.slug,f,{title:p,body:yKn({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 E9,gyt,Syt=v(()=>{"use strict";E9=Se(Xt(),1);ze();Yf();gyt=(()=>{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 SKn,createReadStream as mdi,existsSync as b9,fsyncSync as gdi,mkdirSync as ydi,openSync as EKn,readdirSync as Eyt,readFileSync as byt,readSync as bKn,statSync as _Kn,unlinkSync as Sdi,writeFileSync as Edi,writeSync as bdi}from"node:fs";import{dirname as Tdi,join as Cg,relative as vdi}from"node:path";function nv(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function Tyt(e){try{if(_Kn(e).size<12)return null;let n=Buffer.alloc(16),r=EKn(e,"r");try{bKn(r,n,0,16,0)}finally{SKn(r)}for(let{kind:i,prefix:s}of wKn)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 kKn(e,t){return Cg(e,"stages",t,"baseline-content")}function vyt(e,t,n){return Cg(kKn(e,t),n)}function IKn(e){return Cg(e,"baseline-content")}function Ayt(e,t){return Cg(IKn(e),t)}function CE(e,t){let n=Cg(e,"stages");if(!b9(n))return 0;let r=i=>{if(!b9(i))return null;try{let o=JSON.parse(byt(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=Eyt(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 _9(e){let t=Cg(e,"settings.yml");if(!b9(t))return!1;try{let n=byt(t,"utf-8"),{data:r}=(0,_yt.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 Ryt(e){let t=Cg(e,"stages");if(!b9(t))return[];try{return Eyt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var _yt,TKn,vKn,AKn,RKn,Rdi,wdi,wKn,A0=v(()=>{"use strict";_yt=Se(Xt(),1);Sl();TKn=O.enum(["agent","human-via-mcp","human-implicit"]),vKn=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),AKn=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),RKn=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:TKn,acknowledged_at:O.string(),acknowledged_via:vKn,stage:O.string().nullable(),tracking_class:AKn}),Rdi=O.record(O.string(),RKn);wdi=64*1024,wKn=[{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 Iyt,readFileSync as xKn,statSync as OKn}from"node:fs";import{basename as xyt,join as Qo,relative as T9}from"node:path";function NKn(e){if(!Jf(e))return[];let t=[];try{t=Iyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!y9.has(r))try{OKn(Qo(e,r)).isFile()&&n.push(r)}catch{}return n}function PKn(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 iye(e){if(!Jf(e))return null;try{let t=xKn(e,"utf8");return(0,Oyt.default)(t).data}catch{return null}}function rye(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 wyt(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 kyt(e,t){let n=PE(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 CKn(e){let t=Qo(e,"units");return Jf(t)?Iyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>Qo(t,n.name)):[]}function MKn(e,t,n){return Qo(e,"stages",t,"discovery",`${n}.md`)}function sye(e,t){let n=e.replace(/\{intent-slug\}/g,t),r=`.haiku/intents/${t}/`;return n.startsWith(r)?n.slice(r.length):n}function DKn(e,t,n,r){let i=xyt(e),s=new Set;try{for(let o of no(t,n))o.location&&s.add(sye(o.location,i))}catch{}for(let o of r){let a=iye(o),c=a&&Array.isArray(a.outputs)?a.outputs:[];for(let u of c)typeof u=="string"&&u.length>0&&s.add(sye(u,i))}return s}function LKn(e,t,n,r){return Qo(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function v9(e){let t=e.repoRoot??Qo(e.intentDir,"..","..",".."),n=Qo(t,".haiku");if(_9(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=Qo(e.intentDir,"stages",e.stage),a=CKn(o),c=DKn(e.intentDir,e.studio,e.stage,a),u=xyt(e.intentDir),l=p=>c.has(p)||c.has(sye(p,u));for(let p of a){let h=iye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let y=T9(e.intentDir,p),g=h.reviews??{};for(let[S,b]of Object.entries(g)){i++;let _=rye(b);if(!_)continue;let T=wyt(b);T&&Jf(p)&&!CL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:y,since:_});let A=PKn(b);if(A){for(let[R,x]of Object.entries(A.files)){let k=Qo(e.intentDir,R),N=Qo(t,R),P=null;if(Jf(k))P=k;else if(Jf(N))P=N;else{let F=ML(R,e.intentDir);if(F!==R){let V=Qo(e.intentDir,F);Jf(V)&&(P=V)}}if(P===null){l(R)||r.push({unit:m,role:S,kind:"input_deletion",file:R,since:_});continue}(g9(P)?!CL(P,x):(()=>{let F=PE(P);return!!F&&F!==x})())&&!l(R)&&r.push({unit:m,role:S,kind:"input_mutation",file:R,since:_})}for(let[R,x]of Object.entries(A.dirs)){let k=Qo(e.intentDir,R),N=Qo(t,R),P=null;if(Jf(k))P=k;else if(Jf(N))P=N;else{let F=ML(R,e.intentDir),V=F!==R?Qo(e.intentDir,F):"";V&&Jf(V)&&(P=V)}if(P===null){l(R)||r.push({unit:m,role:S,kind:"input_deletion",file:R,since:_});continue}let C=NKn(P);for(let[F,V]of Object.entries(x)){let K=Qo(R,F),$=Qo(P,F);if(!Jf($)){l(K)||r.push({unit:m,role:S,kind:"input_deletion",file:K,since:_});continue}let B=v0($);B&&B!==V&&!l(K)&&r.push({unit:m,role:S,kind:"input_mutation",file:K,since:_})}for(let F of C){let V=Qo(R,F);x[F]===void 0&&!l(V)&&r.push({unit:m,role:S,kind:"input_addition",file:V,since:_})}}}}let E=h.discovery??{};for(let[S,b]of Object.entries(E)){i++;let _=rye(b);if(!_)continue;let T=b,A=MKn(e.intentDir,e.stage,S),R=typeof T.output_sha256=="string"?T.output_sha256:null;if(R){let N=kyt(A,R);N&&!N.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:T9(e.intentDir,A),since:_})}let x=LKn(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let N=kyt(x,k);N&&!N.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:T9(t,x),since:_})}}}let d=Qo(e.intentDir,"intent.md"),f=iye(d);if(f){let p=f.approvals??{},h=T9(e.intentDir,d);for(let[m,y]of Object.entries(p)){i++;let g=rye(y);if(!g)continue;let E=wyt(y);E&&(CL(d,E)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:g}))}}return{events:r,scanned:i,skipped:s}}var Oyt,oye=v(()=>{"use strict";Oyt=Se(Xt(),1);Kn();A0();Yf()});var k0={};Rr(k0,{__testOnly:()=>VKn,computeElaborateSignals:()=>w0,derivePosition:()=>Xf,findCurrentStage:()=>ai,intentReviewRoles:()=>k9,isBriefEnabled:()=>Myt,isReflectionEnabled:()=>sv,isStageComplete:()=>R0,listUnitPaths:()=>ov,nextHatForUnit:()=>iv,pendingApprovalSlots:()=>jKn,pendingReviewSlots:()=>FKn,readFm:()=>Jc,serializeElaborateSignals:()=>lye,stageOwesBrief:()=>Uyt,stageOwesObservations:()=>cye,stageRoleLists:()=>I9,unitName:()=>w9,walkFeedbackTrack:()=>uye});import{existsSync as Ia,readdirSync as DL,readFileSync as A9,writeFileSync as Nyt}from"node:fs";import{basename as Cyt,join as Gr}from"node:path";function UKn(e){let t=Gr(e.intentDir,"intent.md");if(Ia(t))try{let n=A9(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,Nyt(t,rv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,Nyt(t,rv.default.stringify(r.content,i)))}catch{}}function sv(e){let t=Gr(e,"intent.md");if(!Ia(t))return!0;try{let n=A9(t,"utf8"),i=(0,rv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function Myt(e){let t=Gr(e,"intent.md");if(!Ia(t))return!0;try{let n=A9(t,"utf8");return(0,rv.default)(n).data.brief!==!1}catch{return!0}}function Jc(e){if(!Ia(e))return null;try{let t=A9(e,"utf8"),n=(0,rv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function Dyt(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 ME(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function R9(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Lyt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function w9(e){return Cyt(e).replace(/\.md$/,"")}function ov(e){let t=Gr(e,"units");return Ia(t)?DL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>Gr(t,n.name)).sort():[]}function Pyt(e){let t=Gr(e,"feedback");return Ia(t)?DL(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=ME(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 FKn(e,t){let n=Lyt(e);return t.filter(r=>!n[r])}function jKn(e,t){let n=R9(e);return t.filter(r=>!n[r])}function HKn(e,t,n){let r=Object.keys(El(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function qKn(e){return typeof e.started_at=="string"&&e.started_at.length>0}function BKn(e,t){let n=R9(e);for(let r of t)if(!n[r])return!1;return!0}function GKn(e,t){if(BKn(e,t))return!0;let n=qKn(e),r=ME(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function zKn(e,t,n,r){let i=Gr(e,"stages",n,"units");if(!Ia(i))return!1;let s=DL(i).filter(c=>c.endsWith(".md"));if(s.length===0||bs(t,n).length===0)return!1;let a=HKn(t,n,r);for(let c of s){let u=Jc(Gr(i,c))?.data;if(!u||!GKn(u,a))return!1}return!0}function R0(e,t,n,r){return zKn(e,t,n,r)}function cye(e,t){return sv(e)?!Ia(Gr(e,"stages",t,"observations.md")):!1}function Uyt(e,t,n){return!(!Myt(e)||Ia(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=Jc(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 uye(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 b=Fyt(E,S,n);if(!b)return null;if(b.kind!=="start_feedback_hat")return b;let _=Jc(S)?.data,T=_?.severity??null,A=Array.isArray(_?.iterations)?_.iterations.length>0:!1,R=b.dispatches[0];return R&&c.push({...R,severity:T,inFlight:A}),null};for(let E of a){let S=Pyt(Gr(t,"stages",E));for(let b of S){let _=u(E,b);if(_)return _}}let l=Pyt(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),b=[];E.stage&&b.push(Gr(t,"stages",E.stage,"feedback")),b.push(Gr(t,"feedback"));let _=!0;for(let T of b){if(!Ia(T))continue;let A=DL(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=Jc(Gr(T,x))?.data;if(k&&Dyt(k)){R=!0;break}}if(R){_=!1;break}}_&&p.push(E)}if(p.length===0||!p.some(E=>E.inFlight||a0(E.severity)))return null;let y=[...p].sort((E,S)=>Yc(E.severity)-Yc(S.severity)).slice(0,av),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 Fyt(e,t,n){let r=Jc(t);if(!r)return null;let i=r.data;if(Dyt(i))return null;let s=jyt(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=ME(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=ME(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 jyt(e){let t=Cyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function Hyt(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:w9(A),fm:Jc(A)?.data??{}})).filter(A=>A.fm),u=bs(r,i),l=El(r,i),d=Object.keys(l).sort(),{reviewRoles:f,approvalRoles:p}=I9(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(ZD(r,i)&&c.length===0&&!Ia(Gr(o,"elaboration.md"))){let A=wn(Jc(Gr(n,"intent.md"))?.data??{},r);return{kind:"elaborate_loop",stage:i,signals_unmet:h,optional_offer:!0,dependents:jpe(r,i,A)}}return{kind:"elaborate_loop",stage:i,signals_unmet:h}}{let A=wn(Jc(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(N=>N.fm.started_at!=null||ME(N.fm).length>0?!1:!Lyt(N.fm)[x]).map(N=>N.name);if(k.length!==0){if(x==="user"){R=k;continue}if(aye.has(x)){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: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||ME(k.fm).length>0);if(Uyt(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=ME(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)),y=c.filter(A=>A.fm.started_at!=null&&iv(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(x=>m.has(x))):[]).slice(0,av),S=wn(Jc(Gr(n,"intent.md"))?.data??{},r),b=S.length>0&&S[0]===i;if(!b&&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 _=[],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}_.push({unit:A.name,hat:R.hat,terminal:R.terminal})}if(_.length===0&&T&&y.length>0)return null;if(!b&&_.length>0){let A=new Set(_.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(_.length>0){let A=new Map;for(let P of _){let C=A.get(P.hat)??[];C.push(P.unit),A.set(P.hat,C)}let R=[...A.entries()].sort(([P],[C])=>u.indexOf(P)-u.indexOf(C)),[x,k]=R[0],N=u.indexOf(x);return{kind:"start_unit_hat",stage:i,hat:x,units:k,terminal:N===u.length-1}}{let A=c.filter(R=>(Array.isArray(R.fm.outputs)?R.fm.outputs:[]).length===0?!1:ME(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=>!R9(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(aye.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(!Ia(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=Jc(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&&Ia(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=v9({intentDir:n,stage:a,studio:r});if(c.events.length>0){let u=yyt({events:c.events,intentDir:n,stage:a,slug:t});s&&UKn({intentDir:n,stage:a,tripped:u.cascade_alarm_tripped})}}{let c=s?.data??{},u=uye({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=Hyt({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=R9(s.data),u=Object.keys(mg(r)).sort(),l=k9(o,u),d=[],f=!1;for(let p of l)if(!c[p]){if(p==="user"){f=!0;continue}if(aye.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 p=Gr(n,"reflection.md");if(!Ia(p))return{track:"intent",action:{kind:"record_reflection"}}}return{track:"intent",action:{kind:"seal_intent"}}}}return{track:"sealed",action:{kind:"sealed"}}}function k9(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function I9(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(El(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=Ia(c)?Jc(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("/")?Ia(h)&&DL(h).filter(y=>y!==".gitkeep").length>0:Ia(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 lye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var rv,aye,VKn,xa=v(()=>{"use strict";rv=Se(Xt(),1);ji();ze();Kn();Ipe();ns();Syt();oye();aye=new Set(["spec","quality_gates","user"]);VKn={walkIntentTrack:Hyt,walkFeedbackTrack:uye,nextActionForFeedback:Fyt,parseFbIdFromFilename:jyt}});function ZKn(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 YKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function JKn(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function XKn(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function QKn(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>Byt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function $Kn(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>Byt.test(r.trim())?`${n}(#)`:t)}function qyt(e){let t=e;for(let n of WKn)t=ZKn(t,n);for(let n of KKn)t=YKn(t,n);return t=JKn(t),t=XKn(t),t=QKn(t),t=$Kn(t),t}function cv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=qyt(t);if(r===t)return r;t=r}return qyt(t)}var WKn,KKn,Byt,dye=v(()=>{"use strict";WKn=["script","iframe","object","style","form"],KKn=["embed"],Byt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as e3n}from"node:crypto";function I0(){let e=n3n();return r3n(e)}function n3n(){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=e3n(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 r3n(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=t3n[i]+r}return"1".repeat(t)+r}var t3n,Gyt=v(()=>{"use strict";t3n="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var _ye={};Rr(_ye,{_runPresenceSweepForTests:()=>c3n,beginPresenceWatch:()=>fye,clearHeartbeat:()=>x9,clearPreviousReviewSnapshot:()=>Yyt,createDesignDirectionSession:()=>yye,createPickerSession:()=>Sye,createQuestionSession:()=>gye,createSession:()=>O9,createViewSession:()=>Eye,deleteSession:()=>C0,endPresenceWatch:()=>pye,findLiveReviewSessionForIntent:()=>jL,getPreviousReviewSnapshot:()=>mye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>HL,hasPresenceLost:()=>hye,isBrowserAttached:()=>lv,notifySessionUpdate:()=>P0,recordHeartbeat:()=>UL,setPreviousReviewSnapshot:()=>Zyt,updateDesignDirectionSession:()=>BL,updatePickerSession:()=>d3n,updateQuestionSession:()=>qL,updateSession:()=>Pl,updateViewSession:()=>bye,waitForSession:()=>uv});import{EventEmitter as i3n}from"node:events";function fye(e,t={}){N0.set(e,t.startedAt??Date.now())}function pye(e){N0.delete(e)}function UL(e){return Hi.has(e)?(O0.set(e,Date.now()),N0.delete(e),DE.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function hye(e){return DE.has(e)}function x9(e){O0.delete(e),DE.delete(e),N0.delete(e)}function zyt(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 Vyt(e,t){DE.has(e)||(DE.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),x0.emit(`session:${e}`))}function Kyt(){let e=Date.now();for(let[t,n]of O0){if(e-n<=s3n)continue;let r=Hi.get(t);if(!r){O0.delete(t),DE.delete(t);continue}zyt(r)&&Vyt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of N0){if(O0.has(t)||e-n<=a3n)continue;let r=Hi.get(t);if(!r){N0.delete(t);continue}zyt(r)&&Vyt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function c3n(){Kyt()}function P0(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 mye(e){return LL.get(e)}function Zyt(e,t){LL.set(e,t)}function Yyt(e){LL.delete(e)}function Wyt(e){if(LL.has(e)){for(let t of Hi.values())if(t.session_type==="review"&&t.intent_dir===e)return;LL.delete(e)}}function FL(){let e=Date.now();for(let[t,n]of Qf)if(e-n>l3n){let r=Hi.get(t);Hi.delete(t),Qf.delete(t),x9(t),r?.session_type==="review"&&Wyt(r.intent_dir)}for(;Hi.size>=u3n;){let t=Qf.entries().next().value;if(!t)break;let n=Hi.get(t[0]);Hi.delete(t[0]),Qf.delete(t[0]),x9(t[0]),n?.session_type==="review"&&Wyt(n.intent_dir)}}function O9(e){FL();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 gye(e){FL();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 yye(e){FL();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 Sye(e){FL();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 d3n(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),P0(e),n}function Eye(e){FL();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 bye(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),P0(e),n}function $t(e){return Hi.get(e)}function jL(e){let t,n=0;for(let[r,i]of Hi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||DE.has(r))continue;let s=Qf.get(r)??0;s>n&&(t=i,n=s)}return t}function lv(e){if(!Hi.has(e)||DE.has(e))return!1;let t=O0.get(e);return t?Date.now()-t<=f3n:!1}function HL(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),x9(e),t}function Pl(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);Zyt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else Yyt(n.intent_dir);return P0(e),n}}function qL(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),P0(e),n}function BL(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),P0(e),n}var x0,s3n,o3n,O0,DE,a3n,N0,Hi,LL,u3n,l3n,Qf,f3n,Xc=v(()=>{"use strict";Gyt();x0=new i3n;x0.setMaxListeners(200);s3n=12e4,o3n=5e3,O0=new Map,DE=new Set,a3n=6e4,N0=new Map;setInterval(Kyt,o3n).unref();Hi=new Map,LL=new Map;u3n=100,l3n=14400*1e3,Qf=new Map;f3n=3e4});import{spawn as p3n}from"node:child_process";import{existsSync as M0,readFileSync as Qyt}from"node:fs";import{createServer as h3n}from"node:net";import{isAbsolute as m3n,join as dv}from"node:path";function y3n(){return new Promise((e,t)=>{let n=h3n();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 S3n(e){return new Promise(t=>{let{Socket:n}=Z("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 E3n(e,t){let n=Date.now()+N9;for(;Date.now()setTimeout(r,eSt))}throw new Error(`Dev server did not bind to port ${e} within ${N9}ms`)}async function b3n(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 _3n(e,t){let n=Date.now()+N9;for(;Date.now()setTimeout(r,eSt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${N9}ms`)}function tSt(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 nSt(e){let t=dv(e,"package.json");if(!M0(t))return null;let n;try{n=JSON.parse(Qyt(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=T3n(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function T3n(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(`[${rSt}] ${e}`)}function Jyt(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 Tye(e){let t=dv(e,rSt);if(!M0(t))return null;let n;try{n=(0,$yt.default)(Qyt(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 m3n(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:Jyt(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:Jyt(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 zL(e){let t=Tye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function v3n(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 vye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=v3n(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await y3n());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)},g3n);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};GL.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 b=E.toUpperCase().replace(/-/g,"_");p[`${b}_PORT`]=String(S),p[`${b}_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=p3n(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 _3n(E)}else await E3n(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 iSt(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await vye(e,[n],"app")).primary}function D0(e){let t=GL.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),GL.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 GL)$t(t)||(D0(t),e+=1);return e}function A3n(){if(Xyt)return;Xyt=!0;let e=()=>{for(let[t]of GL)D0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var $yt,GL,g3n,N9,eSt,rSt,Xyt,VL=v(()=>{"use strict";$yt=Se(Xt(),1);Xc();GL=new Map,g3n=1800*1e3,N9=60*1e3,eSt=200;rSt=".haiku/boot.md";Xyt=!1;A3n()});import{lstatSync as Aye,mkdirSync as R3n,realpathSync as oSt,renameSync as w3n,unlinkSync as k3n}from"node:fs";import{isAbsolute as I3n,relative as x3n,resolve as P9,sep as C9}from"node:path";function fv(e,t,n,r){let i=P9(e),s=P9(t),o=P9(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=oSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${L0(d)}`}}if(s!==i&&!s.startsWith(`${i}${C9}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${C9}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=x3n(i,s),u=c===""?[]:c.split(C9),l=i;for(let d of u){if(d===""||d==="."||d===".."||I3n(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=P9(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{R3n(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: ${L0(y)}`}}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=oSt(s);if(d!==a&&!d.startsWith(`${a}${C9}`))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{w3n(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{k3n(e)}catch{}}var M9=v(()=>{"use strict"});var YL={};Rr(YL,{applyFeedbackInvalidations:()=>wye,drainPendingDispatches:()=>P3n,stampSingleDispatch:()=>Rye,stashPendingDispatch:()=>O3n,stashPendingIntentReview:()=>N3n});import{existsSync as WL,readdirSync as cSt,readFileSync as KL}from"node:fs";import{join as Lg}from"node:path";function ZL(e){let t=Lg(ve(),"intents",e,"intent.md");if(!WL(t))return null;let n=KL(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function F9(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function uSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function O3n(e,t,n,r,i){let s=ZL(e);if(!s)return;let o=t==="review"?L9:U9,a={...F9(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,De(s.path,o,a)}function N3n(e,t){if(t==="user")return;let n=ZL(e);if(!n)return;let r={...uSt(n.fm,D9)};r[t]={dispatched_at:new Date().toISOString()},De(n.path,D9,r)}function lSt(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(!WL(l))continue;if(s&&C3n({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=KL(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]=jd(t,h),De(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function Rye(e,t,n,r){let i=ZL(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?L9:U9,o=F9(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}=lSt({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 P3n(e){let t=ZL(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"?L9:U9,c=F9(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;lSt({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=uSt(t.fm,D9);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&&(M3n({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,D9,{})}return i}function C3n(e){let t=Lg(e.intentDir,"stages",e.stage,"feedback");if(!WL(t))return!1;for(let n of cSt(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Lg(t,n.name),i=KL(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 L9,U9,D9,pv=v(()=>{"use strict";ji();ze();Yf();L9="_pending_review_dispatches",U9="_pending_approval_dispatches",D9="_pending_intent_review_dispatches"});import{existsSync as D3n,readFileSync as L3n}from"node:fs";import{join as U3n}from"node:path";function fSt(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{wye({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{F3n({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 F3n(e){let t=ve(),n=U3n(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!D3n(n))return;let r=Pg(n);if(!r)return;let i=L3n(n,"utf8"),o=(0,dSt.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&&De(n,"reviews",u);let l=c("approvals");l&&De(n,"approvals",l)}var dSt,pSt=v(()=>{"use strict";dSt=Se(Xt(),1);pv();Yf();ze();To()});var bSt={};Rr(bSt,{__testOnly:()=>Z3n,withIntentDispatchLock:()=>F0,withIntentMainLock:()=>B9,withStageLock:()=>LE});import{existsSync as j3n,mkdirSync as mSt,readFileSync as H3n,rmSync as gSt,statSync as q3n,writeFileSync as B3n}from"node:fs";import{join as j9}from"node:path";function ySt(){return j9(Br(),".haiku","locks")}function V3n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function W3n(e){let t=j9(e,"holder.json");if(!j3n(t))return null;try{let n=H3n(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 SSt(e){let t;try{t=Date.now()-q3n(e).mtimeMs}catch{return!1}if(t{"use strict";ze();G3n=50,hSt=3e4,z3n=5*6e4;Z3n={acquireLock:H9,releaseLock:q9,lockRoot:ySt,isStale:SSt}});function JL(e){return Array.isArray(e.iterations)?e.iterations:[]}function Y3n(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function kye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function _St(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:JL(e.fm).length>0}function J3n(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(_St)?"active":"pending":e.length===0||!e.some(_St)?"pending":e.every(s=>{let o=JL(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=kye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function X3n(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=>!Y3n(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=JL(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=>!kye(c.fm)[o]))return"gate";return null}function Q3n(e,t){return e.length===0?null:e.every(r=>{let i=kye(r.fm);return t.every(s=>i[s])})?"advanced":null}function TSt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function $3n(e){return e.map(n=>TSt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function e4n(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=JL(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=TSt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function t4n(e){let t=0;for(let n of e){let r=JL(n.fm);r.length>t&&(t=r.length)}return t}function Iye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=J3n(n,i,o,a),l=u==="completed"?null:X3n(n,i,s,o,r,c),d=Q3n(n,o),f=$3n(n),p=e4n(n,u),h=t4n(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var xye=v(()=>{"use strict"});import{execFileSync as z9}from"node:child_process";import{existsSync as ASt,readdirSync as n4n,readFileSync as r4n}from"node:fs";import{basename as RSt,join as G9}from"node:path";function Oye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Oye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Oye(r);return t}return e}function kSt(e){try{let t=(0,wSt.default)(e).data;return Oye(t)}catch{return null}}function ISt(e){if(!ASt(e))return null;try{return kSt(r4n(e,"utf8"))}catch{return null}}function i4n(e){let t=G9(e,"units");return ASt(t)?n4n(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=ISt(G9(t,n.name))??{};return{name:RSt(n.name,".md"),fm:r}}):[]}function s4n(e,t){if(!Re())return null;try{return z9("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function xSt(e,t){let n=s4n(e,t);return n==null?null:kSt(n)}function o4n(e,t){if(!Re())return[];try{return z9("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 a4n(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=o4n(e,r);return i.length===0?[]:i.map(s=>{let o=xSt(e,`${r}/${s}`)??{};return{name:RSt(s,".md"),fm:o}})}function Nye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(El(e,t)).sort(),"user"]}function Pye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(El(e,t)).sort(),"user"]}function c4n(e,t){if(!Re())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return z9("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function vSt(e){if(!Re())return!1;try{return z9("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=G9(i,"stages",r),a=bs(n,r),c=Nye(n,r,s),u=Pye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=Re(),p=f&&vSt(l),m=f&&vSt(d)?d:p?l:null,y=m?a4n(m,t,r):i4n(o),g=p?c4n(t,r):null,E=G9(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,b=m?xSt(m,S):ISt(E),_=null;return b!==null&&(_=(typeof b.verified_at=="string"?b.verified_at:"").length>0),Iye({stage:r,units:y,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:g,elaborationVerified:_})}var wSt,XL=v(()=>{"use strict";xye();wSt=Se(Xt(),1);PT();Kn();ns()});import{appendFileSync as u4n,existsSync as Ifi,mkdirSync as OSt,readFileSync as xfi,writeFileSync as l4n}from"node:fs";import{dirname as NSt}from"node:path";function PSt(e,t){try{OSt(NSt(e),{recursive:!0}),l4n(e,`${JSON.stringify(t,null,2)} -`)}catch{}}function qi(e,t){try{let n=e.replace(/\.json$/,".jsonl");OSt(NSt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};u4n(n,`${JSON.stringify(r)} -`)}catch{}}var QL=v(()=>{"use strict"});var CSt,MSt,DSt,LSt=v(()=>{"use strict";CSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],MSt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],DSt=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as d4n}from"node:crypto";import{existsSync as USt,readdirSync as f4n,readFileSync as FSt,writeFileSync as p4n}from"node:fs";import{join as V9}from"node:path";function h4n(e){let t=JSON.stringify(e,Object.keys(e).sort());return d4n("sha256").update(t).digest("hex").slice(0,16)}function Cye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function m4n(e,t,n){if(!n)return{};let r=V9(e,"intents",t,"stages",n,"units");if(!USt(r))return{};for(let i of f4n(r)){if(!i.endsWith(".md"))continue;let s=FSt(V9(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return Cye(o,DSt)}return{}}function ci(e){if(!Mi().hooks)try{let t=ve(),n=V9(t,"intents",e,"intent.md");if(!USt(n))return;let r=FSt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=Cye(i,CSt),a={};if(s){let f=H0(e,s),p=UE(f);a=Cye(p,MSt)}let c=m4n(t,e,s),l=h4n({intent:o,stage:a,unit:c}),d=V9(t,"intents",e,".fsm_checksum");p4n(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var W9=v(()=>{"use strict";Sf();ze();LSt()});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";ka()});var cY={};Rr(cY,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>JT,AGENT_AUTHORABLE_UNIT_FIELDS:()=>NE,CREATE_TIME_FB_FIELDS:()=>kL,ERROR_OUTPUT_SCHEMA:()=>Jge,FEEDBACK_ASSESSOR_HAT:()=>oEt,FEEDBACK_ORIGINS:()=>nZn,FEEDBACK_STATUSES:()=>FE,FSM_DRIVEN_FB_FIELDS:()=>wL,FSM_DRIVEN_INTENT_FIELDS:()=>XT,FSM_DRIVEN_UNIT_FIELDS:()=>Zf,INTENT_FRONTMATTER_SCHEMA:()=>PL,INTENT_TITLE_MAX_LENGTH:()=>Vye,IntentScopeTickPersistError:()=>qd,MAX_CONCURRENT_SUBAGENTS:()=>av,MAX_FIX_LOOP_BOLTS:()=>Mg,MAX_INTEGRATOR_ATTEMPTS:()=>rZn,MAX_RATIONALE_BYTES:()=>jye,MAX_RATIONALE_EXCERPT_BYTES:()=>Hye,MAX_STAGE_ITERATIONS:()=>Cf,MAX_UNIT_BOLTS:()=>mv,OK_OUTPUT_SCHEMA:()=>Xge,REJECT_LOOP_MIN_REPEATS:()=>$9,STAGE_STATE_FIELDS:()=>Qge,STAGE_STATE_SCHEMA:()=>h9,UNIT_FRONTMATTER_SCHEMA:()=>QT,_resetIsGitRepoForTests:()=>hft,appendFeedbackIteration:()=>cZn,appendFeedbackReply:()=>sSe,appendStageIteration:()=>Jye,applyAutoFixes:()=>Wye,closeCurrentStageIteration:()=>Xye,completeUnitIteration:()=>eY,computeFeedbackSignature:()=>$St,countConsecutiveSameRejects:()=>QSt,countInFlightUnits:()=>uEt,countPendingFeedback:()=>lZn,countUnitBolts:()=>XSt,deleteFeedbackFile:()=>aY,deleteFrontmatterFields:()=>Kh,deriveAuthorType:()=>eSe,deriveFeedbackIdFromFilename:()=>fEt,deriveFeedbackStatus:()=>ep,deriveUnitStatus:()=>B0,detectDagCycles:()=>iEt,detectSettledDuplicate:()=>eEt,dismissFeedbackClosureReply:()=>oSe,ensureWorktreesGitignored:()=>BD,feedbackDir:()=>lo,feedbackSeverityRank:()=>Yc,findFeedbackFile:()=>Sc,findHaikuRoot:()=>ve,formatFeedbackId:()=>Hd,getIntentScopeTickCounter:()=>a1,getStageIterationCount:()=>nEt,gitCommitAll:()=>tY,gitCommitState:()=>It,gitCommitStateBackgroundPush:()=>Fg,gitCommitStateIfDirty:()=>Qye,handleStateTool:()=>cSe,incrementFeedbackBolt:()=>dZn,intentDir:()=>pe,intentFromCurrentBranch:()=>gv,intentTitleNeedsRepair:()=>i1,isGitRepo:()=>Re,isIntentArchived:()=>o1,isIntentLocked:()=>s1,listInstalledSkills:()=>V0,listVisibleIntentSlugs:()=>$4n,listVisibleIntents:()=>Ug,matchesGlob:()=>qye,migrateIterationReasonsOnRead:()=>Bye,migrateMisplacedWorktrees:()=>JSt,moveFeedbackFile:()=>dEt,normalizeLegacyFeedbackStatus:()=>sY,normalizeRejectReason:()=>Zye,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>tSe,persistDesignDirectionUploads:()=>nSe,pickUndispatchedUnitBlocks:()=>cEt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>C4n,readDecisionLog:()=>d4,readFeedbackFiles:()=>Us,readIntentBody:()=>Wh,readJson:()=>UE,repairDeclaredOutput:()=>iY,resolveUnitHats:()=>zye,runInlineQualityGates:()=>Kye,safeMkdirAndRename:()=>fv,setFrontmatterField:()=>De,setHaikuRootForTests:()=>gft,setIsGitRepoForTests:()=>mft,setUnitFrontmatterField:()=>eZn,slugifyTitle:()=>oY,stageDir:()=>ar,stageStatePath:()=>H0,stampDispatchClaim:()=>aEt,stampUnitHatLease:()=>rSe,startUnitIteration:()=>n1,stateToolDefs:()=>aSe,syncSessionMetadata:()=>Xr,timestamp:()=>bn,unitIntentDir:()=>D4n,unitOutputExists:()=>Vh,unitPath:()=>Oa,updateFeedbackFile:()=>iSe,validateBranch:()=>$ye,validateIntentSchema:()=>T0,validateRationaleCaps:()=>T4n,validateSlugArgs:()=>wD,validateUnitFrontmatter:()=>rEt,validateUnitSchema:()=>Ng,validateUnitScope:()=>Q9,writeFeedbackFile:()=>Xo,writeJson:()=>r1});import{execFileSync as Na,execSync as zh,spawn as g4n,spawnSync as K9}from"node:child_process";import{randomBytes as y4n}from"node:crypto";import{appendFileSync as S4n,existsSync as ue,lstatSync as E4n,mkdirSync as Cl,readdirSync as an,readFileSync as Ne,renameSync as VSt,rmSync as Fye,statSync as WSt,unlinkSync as G0,writeFileSync as In}from"node:fs";import{homedir as b4n}from"node:os";import{basename as _4n,dirname as z0,join as ne,resolve as $f,sep as q0}from"node:path";import{readdirSync as Y4n}from"node:fs";function jSt(e){return Buffer.byteLength(e,"utf-8")}function T4n(e){let t=jSt(e.agent_rationale);if(t>jye)return{kind:"agent_rationale_too_long",bytes:t,cap:jye};for(let n=0;nHye)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:Hye}}return null}function i1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>Vye||/\n/.test(t))}function Wye(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 g of an(o,{withFileTypes:!0})){if(!g.isDirectory())continue;let E=ne(o,g.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 g of s){let E=Ne(g,"utf8"),{text:S,removed:b}=fg(E);if(b.length===0)continue;In(g,S);let _=g.startsWith(ne(e,t))?g.slice(ne(e,t).length+1):g;i.push({intent:t,field:`${_}:frontmatter`,description:`Deduped frontmatter keys: ${b.join(", ")}`})}let a=n.filter(g=>!g.field.endsWith(":frontmatter-duplicate-keys")),c=Ne(r,"utf8"),u=(0,Nt.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"&&i1(l.title)){let S=l.title.replace(/\s+/g," ").trim(),b=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: "${b}"`}),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=v4n(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 b=S[1].split(",").map(_=>_.trim()).filter(Boolean);b.length>0&&(l.stages=b,i.push({intent:t,field:"stages",description:`Updated stages to match studio definition: [${b.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&&In(r,Nt.default.stringify(d,l));let h=ne(e,t,"stages");if(ue(h))for(let g of an(h,{withFileTypes:!0})){if(!g.isDirectory())continue;let E=ne(h,g.name,"units");if(ue(E))for(let S of an(E,{withFileTypes:!0})){if(!(S.isFile()&&S.name.endsWith(".md")))continue;let b=ne(E,S.name),_=Ne(b,"utf8"),T=(0,Nt.default)(_);if("type"in T.data){let{type:A,...R}=T.data;In(b,Nt.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],b=E[2],_=ne(e,t,"stages",S,"units",b);if(!ue(_)){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(ue(P))for(let C of an(P))C.endsWith(".md")&&N.push(`knowledge/${C}`);T=N}if(T.length===0){m.push(g);continue}let R=Ne(_,"utf8"),x=(0,Nt.default)(R);(x.data.inputs||[]).length>0||(x.data.inputs=T,In(_,Nt.default.stringify(x.content,x.data)),i.push({intent:t,field:g.field,description:`Linked ${T.length} input(s): ${T.join(", ")}`}))}return{applied:i,remaining:m}}function v4n(e){try{return WSt(e)}catch{return null}}function A4n(e,t){if(!Re())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 ZSt(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(Ne(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function rY(e,t,n,r){let i=ne(e,t,"intent.md");if(!ue(i))return[];let s=Ne(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"&&i1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${Vye})`;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 y=ne(m,u,"stages",d,"STAGE.md");if(!ue(y))continue;let{data:g}=re(Ne(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(ue(S))for(let b of an(S).filter(_=>_.endsWith(".md"))){let _=Ne(ne(S,b),"utf8"),{data:T}=re(_),A=T.name||b.replace(/\.md$/,""),R=E==="outputs"?y.output:y.discovery;if(A!==R)continue;let x=T.location||"";if(!x)continue;let k=x.replace(/^\.haiku\/intents\/\{intent-slug\}\//,""),N=ne(m,k);ue(N)&&p.push(k)}}}}for(let h of an(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;R4n.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=Ne(ne(f,h.name),"utf8"),{removed:y}=fg(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 _=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(Re()){let d=ne(e,t,"intent.md"),f=A4n(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 YSt(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}=ZSt(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=rY(i,f,s,o);if(n&&p.length>0){let h=Wye(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=rY(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 w4n(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 HSt(){if(!Re())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 k4n(e){try{return Na("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function JSt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!Re())return e;let t=Br(),n=`${q0}.haiku${q0}worktrees${q0}`;for(let i of HSt()){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(k4n(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));Cl(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 HSt())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{Fye(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=ne(i,".haiku");ue(a)&&an(a).length===0&&Fye(a,{recursive:!0,force:!0})}catch{}}return e}function I4n(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 x4n(e){xT();let t=pc(),n=[];if(e){let s=Zfe();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=cpe(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,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=ape(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=z3();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=V3(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=YSt(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(Ne(d,"utf8")).data.status==="completed"&&!bl(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=bl(o,t),p=[`repair: auto-fix ${l.applied.length} metadata issue(s)`,"",...l.applied.map(m=>`- ${m.intent}/${m.field}: ${m.description}`)],h=K3(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(y=>`- **${y.intent}/${y.field}**: ${y.description}`).join(` -`)}`);m.ok?c.prUrl=m.url:c.prError=m.error}}}finally{a&&W3(a)}n.push(c)}let i=O4n(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function O4n(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=V3(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}=ZSt(a);for(let p of l){let h=rY(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=Wye(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=rY(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=K3(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(y=>`- **${y.intent}/${y.field}**: ${y.description}`).join(` -`)}`);m.ok?s.prUrl=m.url:s.prError=m.error}}}finally{o&&W3(o)}if(s.scanned>0||s.setupError)return s}function N4n(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 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 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=`${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&&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&&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($L!==null&&$L.cwd===e)return $L.root;if(!Re())return $L={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:$f(e,n);t=$f(r,"..")}}catch{t=e}return $L={cwd:e,root:t},t}function Kye(e,t){let n=ve(),r=ne(n,"intents",e,"intent.md");function i(f){if(!ue(f))return[];let p=Ne(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=zh("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 P4n(e){try{let t=zL(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(Ne(t,"utf8"));return(n||"").trim()||null}function s1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Ne(t,"utf-8"),{data:r}=(0,Nt.default)(n);return r.status==="locked"}catch{return!1}}function o1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Ne(t,"utf-8"),{data:r}=(0,Nt.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function C4n(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 M4n(e){return ne(e,"intent-tick.json")}function a1(e){let t=M4n(e),n=z0(t);try{let o=E4n(n);if(o.isSymbolicLink())throw new qd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new qd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof qd?o:new qd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=Ne(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}-${y4n(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),VSt(s,t)}catch(o){try{G0(s)}catch{}throw new qd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function D4n(e,t){let n=ne(Br(),".haiku","worktrees",e,t),r=ne(n,".haiku","intents",e);return ue(r)?r:pe(e)}function e1(e){if(!ue(e))return!1;try{let t=WSt(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(e1(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(e1(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(e1(a))return!0}if(ue(i)){let a=$f(i,n);if(e1(a))return!0}return!1}function L4n(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 Mye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function iY(e,t,n){let r=_4n(n);if(Mye(r)===r)return null;let i=Mye(r),s=z0(n),o=new Set;for(let c of L4n(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&&Mye(d)===i&&e1(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 Oa(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 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 U4n(e,t,n){if(!Re())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 F4n(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 j4n(e,t,n,r){let i=U4n(e,n,t);return i!==null?i:[]}function H4n(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 q4n(e,t,n,r){if(r.length===0)return;let i=Oa(e,t,n);if(!ue(i))return;let s=Ne(i,"utf8"),{data:o,content:a}=(0,Nt.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=Re(),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,In(i,Nt.default.stringify(a,o))}function Q9(e,t,n,r){let i=Oa(e,n,r);if(!ue(i))return null;let{data:s}=re(Ne(i,"utf8")),o=s.hat_started_at,a=j4n(e,n,r,o);if(a.length===0)return null;let c=F4n(e,t,n,r),u=Re(),l=[];for(let d of a)H4n(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(q4n(e,n,r,a),null)}function Zye(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function XSt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function QSt(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||Zye(s.reason)!==n)break;r++}}return r}function $St(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 qSt(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&&!B4n.has(i));return new Set(r)}function G4n(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 eEt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=qSt(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=G4n(i,qSt(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 tEt(e,t){return ne(ar(e,t),"decisions.jsonl")}function BSt(e,t,n){let r=tEt(e,t);try{Cl(z0(r),{recursive:!0}),S4n(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 d4(e,t){let n=tEt(e,t);if(!ue(n))return[];let r=Ne(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 Yye(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 nEt(e,t,n){if(t&&n){let s=Yye(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 Jye(e,t,n,r="feedback-revisit"){let i=Yye(e,t),s=bn();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?$St(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 Xye(e,t,n,r){let i=Yye(e,t),s=bn();i.length===0&&void 0,{...r?{reason:r}:{}}}function n1(e,t){if(!ue(e))return;let{data:n,body:r}=re(Ne(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:bn(),completed_at:null,result:null}),n.iterations=i,In(e,Nt.default.stringify(r,n))}function Bye(e){if(!ue(e))return;let t;try{t=re(Ne(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,Nt.default.stringify(t.body,t.data))}catch{}}function eY(e,t,n){if(!ue(e))return;let{data:r,body:i}=re(Ne(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=bn(),o.result=t,n&&(o.message=n),r.iterations=s,In(e,Nt.default.stringify(i,r)))}function W4n(e){let t=[],n=new Set;for(let r of V4n){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 K4n(e){let t=W4n(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=Ne(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${Dye(i.identifier)}\\b|\\bfunction\\s+${Dye(i.identifier)}\\b|\\b${Dye(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 Dye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Z4n(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 J4n(e){if(!Lye){let t=new KSt.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 Y4n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(Ne(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(Ne(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);Lye=o,Gye=()=>o.errors}return Lye(e)}function X4n(){return Gye?Gye():[]}function Q4n(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 Z9(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 rEt(e,t){let n=[];if(!Ng(e)&&Ng.errors)for(let i of Ng.errors)n.push(Q4n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||Z9(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=>Z9(i,o))&&!Z9(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=>Z9(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 iEt(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 c1(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,Nt.default)(n);return{data:c1(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(Ne(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function $4n(e,t){return Ug(e,t).map(n=>n.slug)}function gv(){if(!Re())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=Ne(e,"utf8"),i=(0,Nt.default)(r),s={...i.data,[t]:n};In(e,Nt.default.stringify(i.content,c1(s)))}function Kh(e,t){if(!ue(e))return;let n=Ne(e,"utf8"),r=(0,Nt.default)(n),i={...r.data},s=!1;for(let o of t)o in i&&(delete i[o],s=!0);s&&In(e,Nt.default.stringify(r.content,c1(i)))}function eZn(e,t,n,r,i){let s=Oa(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 GSt(e){let{data:t}=(0,Nt.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 c1(t)}function tZn(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 UE(e){return ue(e)?JSON.parse(Ne(e,"utf8")):{}}function r1(e,t){Cl(ne(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} -`)}function bn(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function BD(){if(Re())try{let e=ne(Br(),".gitignore"),t=".haiku/worktrees/",n="";try{ue(e)&&(n=Ne(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 sEt(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 tY(e){if(!Re())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:va,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 It(e){if(!Re())return{committed:!1,pushed:!1};try{sEt(ve()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return Na("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:va,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 Qye(e){if(!Re())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 It(e)}function Fg(e){if(!Re())return{committed:!1};try{sEt(ve()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=g4n("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function $ye(e,t,n){if(!Re())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 Y9(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 J9(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 t1(e){let t=ve(),n=ne(t,"intents",e,"intent.md");if(!ue(n))return"";let{data:r}=re(Ne(n,"utf8"));return r.active_stage||""}function $o(e,t){if(pE())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(` @@ -702,47 +701,47 @@ ${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 nY(e,t){let n=ve(),r=t1(e);if(r){let s=Oa(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=Oa(e,s,t);if(ue(o))return{path:o,stage:s}}return null}function zye(e,t,n){return u1(e,t)}function u1(e,t){try{let n=ve(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return[];let{data:i}=re(Ne(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(Ne(c,"utf8"));return u.hats||[]}}catch{}return[]}function X9(e,t){try{let n=ve(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return"";let{data:i}=re(Ne(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=Ne(c,"utf8"),l=re(u),{content:d}=(0,Nt.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(Ne(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(Ne(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(!ue(h))continue;let{data:m}=re(Ne(h,"utf8"));d=m.description||o;break}}PSt(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 sY(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 eSe(e){return iZn.has(e)?"human":"agent"}function sZn(e){return eSe(e)==="human"?"user":"agent"}function oZn(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function oY(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function tSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction");Cl(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=oY(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-${l1(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=Ne(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:bn()},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:bn()};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}`)}Cl(z0(s),{recursive:!0}),In(s,Nt.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 nSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction"),n=ne(t,"uploads");Cl(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=oY(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${l1(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=Ne(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:bn()},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:bn()};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}`)}}Cl(z0(s),{recursive:!0}),In(s,Nt.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 aEt(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(g=>g.startsWith(o)&&g.endsWith(".md"));if(!a)return;let c=ne(s,a),u=Ne(c,"utf8"),l=(0,Nt.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:bn(),result:null,bolt:m});let y={...d,iterations:f};In(c,Nt.default.stringify(`${l.content.trimEnd()} -`,y))}catch{}}function rSe(e){let{slug:t,stage:n,unit:r,hat:i}=e;try{let s=Oa(t,n,r);if(!ue(s))return;let a=(0,Nt.default)(Ne(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=bn(),De(s,"iterations",c)}catch{}}function zSt(e,t){try{return F0(e,()=>{let n=pe(e),r=ne(n,"intent.md");if(!ue(r))return null;let i=(0,Nt.default)(Ne(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=nY(e,t);if(!d)return null;let f=re(Ne(d.path,"utf8")),p=u1(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 rSe({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 Uye(e,t){let n=pe(e),r=ue(ne(n,"intent.md"))?(0,Nt.default)(Ne(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(Ne(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?Sg(t,d):Uf(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)=>Yc(d.severity)-Yc(f.severity))[0];return aEt({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 cEt(e,t,n){if(n<=0)return[];let r=pe(e),i=ai(e,t,r)??"";if(!i)return[];let s=u1(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),y;try{y=re(Ne(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=>!Vh(e,h.name,E))||(De(h.path,"started_at",bn()),n1(h.path,o),rSe({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 uEt(e,t,n){let r=u1(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(Ne(ne(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||iv(c,r)!==null&&s++}return s}function lEt(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 l1(e){return e.toString().padStart(3,"0")}function Xo(e,t,n){let r=lo(e,t);Cl(r,{recursive:!0});let i=lEt(r),s=l1(i),o=oY(n.title),a=`${s}-${o}.md`,c=ne(r,a),u=n.origin||"agent",l=n.authorType??eSe(u),d=n.author||sZn(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)?UE(A):{};h=nEt(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 y=cv(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 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 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)}) -`:y,E=new Set(["question","inline_fix","stage_revisit"]),S=typeof n.resolution=="string"&&E.has(n.resolution)?n.resolution:null,b={title:n.title,status:"pending",origin:u,...p?{severity:p}:{},author:d,author_type:l,created_at:bn(),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"?bn():null,resolution:S,replies:[],targets:{unit:n.targetUnit===void 0||n.targetUnit===null?null:n.targetUnit,invalidates:oZn(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}:{}}}:{}},_=Nt.default.stringify(` -${g} -`,b);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=Ne(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-${l1(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 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:uZn(l),iterations:aZn(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(b=>typeof b=="string"):[];return{unit:E,invalidates:S}})()})}return i}function aZn(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 cZn(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=Ne(a,"utf8"),u=(0,Nt.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,Nt.default.stringify(u.content,c1(f)))}function uZn(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 lZn(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(Ne(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 dEt(e,t,n,r){let i=Sc(e,t,n);if(!i)return null;let s=bn(),o={...i.data,triaged_at:s};if(t===r){sY(o);let S=Nt.default.stringify(` +`: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-${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 b=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,_=o.id;return{feedback_id:typeof _=="string"&&_.length>0?_:fEt(i.filename),file:b,moved:!1,triaged_at:s}}let a=lo(e,r);Cl(a,{recursive:!0});let c=lEt(a),u=l1(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+)-/),y=m?m[1]:null;if(y)for(let S of["png","jpg","jpeg","webp"]){let b=ne(h,`${y}-${d}.${S}`);if(ue(b)){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 g=Nt.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,g),y)for(let S of["png","jpg","jpeg","webp"]){let b=ne(h,`${y}-${d}.${S}`);if(ue(b)){let _=ne(a,`${u}-${d}.${S}`);VSt(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&&In(p,Nt.default.stringify(` +`,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))}}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 fEt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function Hd(e){return`FB-${e.toString().padStart(3,"0")}`}function iSe(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&&!FE.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${FE.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")),sY(a),In(s.path,Nt.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 sSe(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:bn()},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,Nt.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:ep(d)}}function dZn(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,Nt.default.stringify(` +`,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 oSe(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,Nt.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 aY(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=Ne(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(b4n(),".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 wD(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 fZn(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 pZn(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 hZn(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 mZn(e){let t=e.task,n=bI(),r=Array.from(new Set(n.flatMap(y=>[y.slug,...y.aliases]))).sort(),i=si("software");if(e.studio){let y=si(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=hZn(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=$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=Pu(o,c),p=d.length,h=d.map((y,g)=>fZn(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(b||`(No mandate body for ${g}${_?` 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(""),y>0&&(m.push(`## Input from prior hat (${d[y-1]})`),m.push(""),m.push(""),m.push("")),m.push("## Instructions"),m.push(""),m.push(pZn(E)),m.push("```"),m.push("")}return{message:m.join(` -`),studio:s,stage:c}}function cSe(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&&Sft(i.CLAUDE_SESSION_ID);let s=wD(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,Xme,"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(Ne(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,Qme,"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||"",y=typeof h.sealed_at=="string"&&h.sealed_at.length>0,g=m?ai(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=Be(t,kge,"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(Ne(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},y=Object.hasOwn(m,u)?m[u]:null;return r({found:y!=null,field:u,value:y??null})}case"haiku_unit_get":{let o=Be(t,Fge,"haiku_unit_get");if(o)return o;let a=t.field;if(Zf.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: [${Zf.join(", ")}]. Readable corrective/authorable fields: [${NE.join(", ")}]. For the unit body/title use haiku_unit_read.`},{isError:!0});let c=Oa(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(Ne(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,Uge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=pE();if(!u&&Zf.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: [${Zf.join(", ")}].`},{isError:!0});let l=$o(t.intent,t.stage);if(l)return l;let d=Oa(t.intent,t.stage,t.unit);if(ue(d)){let{data:p}=re(Ne(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 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(!Ng(m)){let y=(Ng.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 De(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,jge,"haiku_unit_list");if(o)return o;let a=$o(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(Ne(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,qge,"haiku_unit_start");if(o)return o;let a=nY(t.intent,t.unit),c=t.stage||a?.stage||t1(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=$o(t.intent,c);if(u)return u;let l=Oa(t.intent,c,t.unit);if(ue(l)){let{data:y}=re(Ne(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,b=S!==null&&(S.result==="advance"||S.result==="closed");if(g&&!b){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=X9(t.intent,c);return n(R?`ok (already started by the engine) +`)}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 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) -${R}`:"ok (already started by the engine)")}let T=X9(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(Ne(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)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=u1(t.intent,c)[0]||"";De(l,"started_at",bn()),n1(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=It(`haiku: start unit ${t.unit}`);Xr(t.intent,t.state_file);let m=X9(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")+Y9(h))}case"haiku_unit_advance_hat":{let o=Be(t,Bge,"haiku_unit_advance_hat");if(o)return o;let a=t.stage,c,u;if(a){if(c=a,u=Oa(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=nY(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=$o(t.intent,c);if(l)return l;let d=(C,F,V)=>F&&F.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} --- Wave still has work \u2014 spawn the block below as your next Task call: -${F}`:`${C} +${L}`:`${C} -Wave done \u2014 call \`haiku_run_next { intent: "${V}" }\` for the next instruction.`,f=Ne(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 C=pe(t.intent),F=g.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=g.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=zye(t.intent,c,t.unit),b=E.indexOf(y)+1;if(b>=E.length){{let z=`${pe(t.intent)}/intent.md`,{data:J}=re(Ne(z,"utf8")),oe=J.studio||"",le=oe?Q9(t.intent,oe,c,t.unit):null;if(le){let _e=t.state_file;_e&&qi(_e,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:le.violations});let wt=[...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: @@ -750,80 +749,80 @@ ${le.violations.map(Ue=>` - ${Ue}`).join(` `)} Allowed paths (stage output templates + workflow engine metadata): -${wt} +${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 C=Ne(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=iY(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=Ne(u,"utf8"),{data:J,content:oe}=(0,Nt.default)(z);In(u,Nt.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})}eY(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=tY(`haiku: complete unit ${t.unit}`),M=t.intent,q=`haiku/${M}/${c}`,U=LE(M,c,()=>ppe(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=S4(pe(t.intent),c),j=`completed (last hat) \u2014 unit branch merged into ${q}${D}. -${t.unit}: ${y} done \u2014 unit complete`+(H?` -${H}`:"")+Y9(G),W=(()=>{let z=ne(pe(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Nt.default)(Ne(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=uEt(t.intent,c,t.unit),ie=Math.max(0,av-ee),Me=W&&ie>0?F0(t.intent,()=>cEt(t.intent,W,ie)):[];Me.length>0&&It(`haiku: refill ${Me.length} unit slot(s) after ${t.unit}`);let Ae;if(Me.length>0){let z=Me.length===1?"block":"blocks";Ae=`${j} +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}`:"")+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} --- -Wave still has work \u2014 spawn the ${Me.length} ${z} below as your next Task call(s) to refill the freed slot(s): +Wave still has work \u2014 spawn the ${Le.length} ${z} below as your next Task call(s) to refill the freed slot(s): -`+Me.join(` +`+Le.join(` `)}else ee>0?Ae=`${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.`: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:F}=re(Ne(C,"utf8")),V=F.studio||"",K=V?Q9(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:y,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:y,violations:K.violations,scope:K.scope,message:`Cannot advance hat '${y}': ${K.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(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: -${K.violations.map(X=>` - ${X}`).join(` +${W.violations.map(Q=>` - ${Q}`).join(` `)} Allowed paths (stage output templates + workflow engine metadata): -${B} +${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=E[b];eY(u,"advance",t.message),n1(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=tY(`haiku: advance hat to ${T} on ${t.unit}`);Xfe(t.intent,t.unit),Xr(t.intent,t.state_file);let R=X9(t.intent,c),x=`${t.unit}: ${y} \u2192 ${T} (hat ${b+1}/${E.length})`,k=S4(pe(t.intent),c),N=`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}`:"")+(R?` +${k}`:"")+(A?` -${R}`:"")+Y9(A),P=zSt(t.intent,t.unit);return n(d(N,P,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,Gge,"haiku_unit_reject_hat");if(o)return o;let a=t.stage,c,u;if(a){if(u=a,c=Oa(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=nY(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=$o(t.intent,u);if(l)return l;let{data:d}=re(Ne(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=XSt(f),y=t.message||void 0,g=Array.isArray(d.outputs)?d.outputs.filter(G=>typeof G=="string"):[],E=[],S=[];for(let G of g)Vh(t.intent,t.unit,G)?E.push(G):S.push(G);let b=E.length>0,_=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&&_)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;!b&&g.length>0?T="[NO FILES PRODUCED \u2014 REJECTED FOR MISSING ARTIFACTS]":b?T="[FILES EXIST \u2014 REJECTED FOR CONTENT QUALITY]":T="";let A=Zye(y),R=QSt(f,h,A);if(A.length>0&&R+1>=$9&&m+1<=mv){let G=null;try{let q=`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. +${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**: -> ${y||"(none)"} +> ${g||"(none)"} -**Outputs status**: ${b?`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**: ${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 ${mv}-bolt cap so the user can intervene without losing the remaining bolts.`,D=Xo(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,It(`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:$9,last_reason:y??null,outputs_present:b,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 ${$9} 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:b,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(Ne(G,"utf8")),q=M.studio||"",U=q?Q9(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. +**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(D=>` - ${D}`).join(` +${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=zye(t.intent,u,t.unit),k=re(Ne(`${pe(t.intent)}/intent.md`,"utf8")).data.studio||"",N=k?Pu(k,u):{},{targetHat:P}=Lpe(x,h,{assessorToFirst:!0,assessorHat:oEt,roleOf:G=>N[G]?.role});if(zo.modelSelection){let G=d.model,M=xfe(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=y;eY(c,"reject",C),n1(c,P);{let G=t.state_file;G&&qi(G,{event:"unit_failed",intent:t.intent,stage:u,unit:t.unit,from_hat:h,to_hat:P,bolt:m+1})}Ke("haiku.unit.failed",{intent:t.intent,stage:u,unit:t.unit,hat:h,prev_hat:P,bolt:String(m+1)});let F=It(`haiku: fail ${t.unit} \u2014 back to ${P}, iteration ${m+1}`);Xr(t.intent,t.state_file);let V=zSt(t.intent,t.unit),K=T?`${T} `:"",$=S4(pe(t.intent),u),B=`${K}rejected \u2014 back to ${P} (iteration ${m+1}). Reason: ${C??"(none)"} -${t.unit}: ${h} \u2192 ${P} (bounced back, iteration ${m+1})`+($?` -${$}`:"")+Y9(F),X=V&&V.length>0?`${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}/${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})`+($?` +${$}`:"")+uZ(L),Q=G&&G.length>0?`${q} --- Wave still has work \u2014 spawn the block below as your next Task call: -${V}`:`${B} +${G}`:`${q} -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:C??null,outputs_present:b,outputs_files_present:E,outputs_files_missing:S,next_subagent_dispatch_block:V,message:X})}case"haiku_unit_read":{let o=Be(t,zge,"haiku_unit_read");if(o)return o;let a=$o(t.intent,t.stage);if(a)return a;let c=Oa(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});Bye(c);let{data:u,body:l}=re(Ne(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,Oge,"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,Nge,"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,Cge,"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,Pge,"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,Mge,"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,Dge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=L3(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,Lge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=D3(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,Vge,"haiku_unit_delete");if(o)return o;let a=$o(t.intent,t.stage);if(a)return a;let c=Oa(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(Ne(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}):(Fye(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,Wge,"haiku_unit_write");if(o)return o;let a=$o(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=Oa(c,u,l),h=!0;if(ue(p)){let{data:x}=re(Ne(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"),y=[],g={};if(ue(m))for(let x of an(m).filter(k=>k.endsWith(".md"))){let k=x.replace(/\.md$/,"");y.push(k);try{let N=re(Ne(ne(m,x),"utf8")).data;Array.isArray(N.outputs)&&(g[k]=N.outputs.filter(P=>typeof P=="string").map(P=>P.trim()))}catch{}}y.includes(l)||y.push(l);let E="knowledge";try{let x=ne(pe(c),"intent.md");if(ue(x)){let k=re(Ne(x,"utf8")).data.studio||"",N=k?si(k):null;if(N){let P=$i(N.dir,u);P&&P.data.produces==="build"&&(E="build")}}}catch{}let S=rEt(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 b={};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:N}=re(Ne(ne(m,x),"utf8"));b[k]=Array.isArray(N.depends_on)?N.depends_on:[]}b[l]=Array.isArray(f.depends_on)?f.depends_on:[];let _=iEt(b);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=K4n(d);if(T)return r(T,{isError:!0});let A=Z4n(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)&&Cl(m,{recursive:!0}),In(p,Nt.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,ege,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||t1(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);Cl(d,{recursive:!0});let f=ne(d,"upstream-reconciliation.json");return r1(f,{acknowledged:!0,acknowledged_at:bn(),rationale:l}),BSt(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:bn()}),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,tge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||t1(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);Cl(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 r1(E,{declared:!0,declared_at:bn(),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(),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});BSt(a,u,{decision:p,options:h,choice:m,source:y,rationale:f||null,recorded_at:bn()});let g=d4(a,u).length;return ci(a),Ke("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=Be(t,nge,"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,rge,"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:Ne(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=Be(t,NL,"haiku_skill_list");return o||r({skills:V0()})}case"haiku_studio_list":{let o=Be(t,NL,"haiku_studio_list");if(o)return o;let a=bI().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,ige,"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,sge,"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=Ne(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,oge,"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=Ne(c,"utf8"),l=GSt(u),d=tZn(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,age,"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(ve(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...ue(l)?GSt(Ne(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!J4n(f)){let m=X4n()[0];return u("settings_field_validation_failed",`Field '${a}' fails settings.schema.json validation: ${m?.instancePath||"(root)"} ${m?.message||"invalid"}.`)}let h=Nt.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,$me,"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=pE();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&&p9.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=>!p9.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),It(`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,Ige,"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,cge,"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 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||"",b=E?typeof y.sealed_at=="string"&&y.sealed_at?"completed":"active":"",_=S||b||"unknown";p.get(g)?.push({slug:m,status:_,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(b=>b.status==="completed").length,E=y.filter(b=>b.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: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: ${y.length} -`,h+=`- Completed: ${g} -`,h+=`- Active: ${E} -`;let S=new Map;for(let b of y){let _=ne(l,b.slug,"stages");if(ue(_))for(let T of an(_)){let A=ne(_,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(Ne(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+=` +`,h+=`- Total intents: ${g.length} +`,h+=`- Completed: ${y} +`,h+=`- Active: ${b} +`;let S=new Map;for(let E of g){let _=ne(l,E.slug,"stages");if(ue(_))for(let T of an(_)){let R=ne(_,T,"units");if(ue(R)){S.has(T)||S.set(T,[]);for(let A of an(R).filter(x=>x.endsWith(".md"))){let{data:x}=re(Pe(ne(R,A),"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(_)} | -`}}return r({markdown:h,studio:c})}case"haiku_zap":{let o=Be(t,uge,"haiku_zap");if(o)return o;let a=mZn(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,lge,"haiku_review");if(o)return o;let a=pc();try{let m=K9("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=K9("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=K9("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=K9("git",["diff","--name-only",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||""}catch{}let d=1e5;c.length>d&&(c=`${c.slice(0,d)} +`;for(let[E,_]of S)h+=`| ${E} | ${_.length} | ${f(_)} | +`}}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 y=ne(p,m);ue(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} -${Ne(y,"utf8").slice(0,5e3)} +${Pe(g,"utf8").slice(0,5e3)} `)}let h=`## Pre-Delivery Code Review `;return h+=`Diff base: ${a} @@ -848,17 +847,17 @@ ${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,fge,"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 +`,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 | |---|------|----------|---------| -`;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(Ne(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}) @@ -893,75 +892,79 @@ For each item, ask the user and apply their choice. --- status: planted trigger: "" -created_at: ${bn()} +created_at: ${En()} --- -`,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(Ne(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: -`;for(let p of d){let{data:h,body:m}=re(Ne(ne(u,p),"utf8"));f+=`### ${p.replace(".md","")} +`;for(let p of d){let{data:h,body:m}=re(Pe(ne(u,p),"utf8"));f+=`### ${p.replace(".md","")} `,f+=`- Trigger: ${h.trigger||"none defined"} `,f+=`- Description: ${m.slice(0,300)} `}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,hge,"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");ue(E)&&(l=E)}if(!l){let E=process.cwd();for(let S=0;S<20;S++){let b=ne(E,"CHANGELOG.md");if(ue(b)){l=b;break}let _=ne(E,"..");if(_===E)break;E=_}}if(!l)return u("No CHANGELOG.md found.");let f=Ne(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(_=>_.version===a);if(E===-1)return u(`Version '${a}' not found in CHANGELOG.md. Available: ${h.slice(0,10).map(_=>_.version).join(", ")}`);let S=E+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?JSt():{moved:[],skipped:[],cleanedSkeletons:[]},f=I4n(d);if(Re()&&!a&&!u)try{let{summaries:m,mainline:y,archivedSummary:g}=x4n(c);if(m.length>0||g){let E=N4n(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{ve()}catch{return l(f?`${f} -No .haiku/ directory found.`:"No .haiku/ directory found.")}let p;try{p=YSt(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,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=w4n(p);return l(f?`${f} -${h}`:h)}case"haiku_feedback":{let o=Be(t,Dme,"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(pe(a),"intent.md");if(!ue(E))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let S=$o(a,c||void 0);if(S)return S;if(c){let k=ar(a,c);if(!ue(k)){let{data:N}=re(Ne(E,"utf8"));if(!(N.stages||[]).includes(c))return{content:[{type:"text",text:`Error: stage '${c}' not found under intent '${a}'`}],isError:!0};Cl(k,{recursive:!0})}}let b=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=Xo(a,c,{title:u,body:l,origin:f,severity:d,author:h,source_ref:p??null,resolution:m??null,...g?{inlineAnchor:g}:{},...b!==void 0?{targetUnit:b}:{},..._!==void 0?{targetInvalidates:_}:{}}),A=It(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=eEt(a,c,{title:u,body:l,targetUnit:b??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(J9(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,qme,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=Hd(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=$o(a,c||void 0);if(l)return l;let d=aY(a,c,u,"agent");if(!d.ok)return{content:[{type:"text",text:d.error}],isError:!0};let f=It(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(J9(p,f))}case"haiku_feedback_move":{let o=Be(t,Bme,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=Hd(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(Ne(d,"utf8")),b=S.stages||[];if(!b.includes(l))return{content:[{type:"text",text:`Error: to_stage '${l}' is not a stage of intent '${a}'. Valid stages: ${b.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=$o(a,l||void 0);if(h)return h;let m=dEt(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=It(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(J9(E,g))}case"haiku_feedback_reject":{let o=Be(t,Gme,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=Hd(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=$o(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()};sY(h);let m=`${f.body} +No intents found.`:"No intents found.");let h=B3n(p);return l(f?`${f} +${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,Nt.default.stringify(` +**Rejection reason:** ${l}`;In(f.path,Ct.default.stringify(` ${m} -`,h));let y=It(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);J3(a,c||"intent",u);let g=null;try{let S=ne(pe(a),"intent.md"),b=ue(S)?re(Ne(S,"utf8")).data.studio??"":"";b&&(g=F0(a,()=>Uye(a,b)))}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(J9(E,y))}case"haiku_feedback_list":{let o=Be(t,zme,"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=$o(a,c??t1(a));if(d)return d;let f;if(c)f=[c];else{let y=ne(pe(a),"stages");ue(y)?f=an(y).filter(g=>ue(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=Us(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=Us(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=Be(t,Vme,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=Hd(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(b=>b.endsWith(".md"))){let b=ne(l,S),{data:_,body:T}=re(Ne(b,"utf8")),A=S.match(/^(\d+)-/),R=A?Number.parseInt(A[1],10):null;if(_.id===u||_.feedback_id===u||m!==null&&R===m){d=b,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});Bye(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=Be(t,Wme,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=Hd(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=$o(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,y=m.status||"pending";if(!pE()&&(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!pE()&&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}):(In(h,Nt.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 '${y}').`}))}case"haiku_feedback_advance_hat":{let o=Be(t,Yme,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Hd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=$o(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 y=[],g=ne(pe(a),"intent.md"),E="software";if(ue(g)){let{data:H}=re(Ne(g,"utf8"));E=H.studio||"software"}if(c){let H=$i(E,c);H?.data?.fix_hats&&Array.isArray(H.data.fix_hats)&&(y=H.data.fix_hats)}else y=Uf(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||"",b=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 j=Array.isArray(p.iterations)?p.iterations.slice():[],W=j[j.length-1],ee={bolt:b,hat:A,completed_at:bn(),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 ie={...p,hat:A,iterations:j,status:"non_actionable",resolution:"non_actionable",closed_at:bn(),closed_by:`${A}:non_actionable`,closure_reply:{text:H,at:bn()},closure_reply_unread:!0};In(f,Nt.default.stringify(`${h.trimEnd()} -`,ie)),ci(a),J3(a,c||"intent",u),It(`haiku: close fix-chain ${u} (non-actionable)`),Ke("haiku.feedback.non_actionable",{intent:a,stage:c||"",feedback_id:u,hat:A});let Ae=Uye(a,E);return n(JSON.stringify({action:"feedback_non_actionable",feedback_id:u,resolution:"non_actionable",hat:A,next_subagent_dispatch_block:Ae,message:`FB '${u}' closed as non-actionable by '${A}': ${H}`+(Ae?" Spawn the relayed block below.":` Call haiku_run_next { intent: "${a}" }.`)}))}let k=typeof t.reply=="string"?t.reply.trim():"",N=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 P=Array.isArray(p.iterations)?p.iterations.slice():[],C=P[P.length-1];C&&(C.result===null||C.result===void 0)&&C.hat===A?P[P.length-1]={...C,completed_at:bn(),result:R?"closed":"advanced",...N?{message:N}:{}}:P.push({bolt:b,hat:A,completed_at:bn(),result:R?"closed":"advanced",...N?{message:N}:{}});let V=m,K,$;R?(V="closed",K=`fix-loop:${u}:bolt-${b}`,$=bn()):V="addressed";let B=A,X={...p,hat:B,iterations:P,status:V};K&&(X.closed_by=K),$&&(X.closed_at=$),R&&k&&(X.closure_reply={text:k,at:bn()},X.closure_reply_unread=!0),In(f,Nt.default.stringify(`${h.trimEnd()} -`,X)),ci(a),R&&fSt({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)Qfe(a,G,u);else{tY(`haiku: close fix-chain ${u}`);let H=LE(a,G,()=>FD(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:y[T+1],q=null,U="",D=(()=>{let H=ne(pe(a),"intent.md");if(!ue(H))return"";let j=(0,Nt.default)(Ne(H,"utf8")).data;return typeof j.studio=="string"?j.studio:""})();if(!R&&M&&D)try{let H=T+1===y.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,()=>Uye(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 ie of an(ee))W.push(ne(ee,ie,"feedback"));e:for(let ie of W)if(ue(ie))for(let Me of an(ie).filter(Ae=>Ae.endsWith(".md"))){let Ae=Ne(ne(ie,Me),"utf8"),z=(0,Nt.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.":R?`FB '${u}' closed by ${K} 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:M,closed:R,bolt:b,next_subagent_dispatch_block:q,message:U})}case"haiku_feedback_reject_hat":{let o=Be(t,Jme,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Hd(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=$o(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,y=ep(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(pe(a),"intent.md"),S="software";if(ue(E)){let{data:q}=re(Ne(E,"utf8"));S=q.studio||"software"}if(c){let q=$i(S,c);q?.data?.fix_hats&&Array.isArray(q.data.fix_hats)&&(g=q.data.fix_hats)}else g=Uf(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 b=h.hat||"",_=h.bolt||1,A=(b?g.indexOf(b):-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 '${b}').`},{isError:!0});let x=A-2,k=x>=0?g[x]:"",N=c?Pu(S,c):U3(S),{targetHat:P}=Lpe(g,R,{roleOf:q=>N[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 '${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}", ${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:bn(),result:"rejected",message:l||"(no message provided)"}:C.push({bolt:_,hat:R,completed_at:bn(),result:"rejected",message:l||"(no message provided)"});let $,B;if(zo.modelSelection){let q=h.model,U=xfe(q);q&&U&&($=q,B=U)}let X={...h,hat:k,bolt:_+1,iterations:C,...B?{model:B,model_original:h.model_original??$}:{}};In(p,Nt.default.stringify(`${m.trimEnd()} -`,X)),$&&B&&console.error(`[haiku] feedback model escalated: ${$} \u2192 ${B} (FB ${u} hat rejected, bolt ${_+1})`),ci(a),Ke("haiku.feedback.hat_rejected",{intent:a,stage:c||"",feedback_id:u,hat:R,new_bolt:String(_+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:P,terminal:!1})}catch{}let M=G?`FB '${u}' hat '${R}' rejected \u2014 re-running '${P}' (bolt ${_+1}). Relay the \`next_subagent_dispatch_block\` field verbatim as your final message.`:`FB '${u}' hat '${R}' rejected \u2014 bounced to '${P}' (bolt ${_+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:_+1,handoff:l,next_subagent_dispatch_block:G,message:M})}case"haiku_feedback_set_targets":{let o=Be(t,Kme,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=Hd(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=$o(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,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 b={...h.data,targets:S};return In(h.path,Nt.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} -`,b)),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,Zme,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=Hd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=$o(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 y={...p.data,severity:l};return In(p.path,Nt.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} -`,y)),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,NL,"haiku_version_info");if(o)return o;let a=sd==="dev",c={mcp_version:sd,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 KSt,Nt,jye,Hye,Vye,R4n,$L,qd,Cf,mv,$9,B4n,z4n,V4n,Lye,Gye,oEt,nZn,FE,Mg,rZn,av,iZn,aSe,ze=v(()=>{"use strict";gD();KSt=Se(B_(),1),Nt=Se(Xt(),1);Ci();kfe();Dpe();Gft();ns();Wpe();E4();xa();dye();VL();M9();pSt();vr();j0();lE();XL();ih();QL();W9();Kn();_l();To();l_();PT();ji();ka();ji();uo();jye=10*1024,Hye=1024;Vye=80;R4n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;$L=null;qd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Cf=2,mv=5,$9=3;B4n=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"]);z4n=.6;V4n=[/\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];Lye=null,Gye=null;oEt="feedback-assessor";nZn=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],FE=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Mg=3,rZn=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})(),iZn=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);aSe=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:wZ,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:kZ,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:KZ,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: ${NE.join(", ")}. FSM-driven fields (${Zf.join(", ")}) return \`unit_field_engine_only\` \u2014 engine bookkeeping stays hidden; for the unit body/title use haiku_unit_read.`,inputSchema:i9,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: ${NE.join(", ")}. FSM-driven (rejected): ${Zf.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:r9,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:s9,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:o9,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:a9,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:c9,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:u9,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:YZ,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:JZ,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:QZ,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:XZ,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:$Z,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:e9,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:t9,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:l9,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): ${NE.join(", ")} \u2014 plus any stage-specific fields the per-stage \`phases/ELABORATION.md\` documents. +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\`): ${Zf.join(", ")}.`,inputSchema:d9,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:xZ,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:OZ,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:NZ,outputSchema:{type:"object",properties:{files:{type:"array",items:{type:"string"}}},required:["files"]}},{name:"haiku_knowledge_read",description:"Read a knowledge artifact",inputSchema:PZ,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:OL,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:OL,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:CZ,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:MZ,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:DZ,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:LZ,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:IZ,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:ZZ,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:UZ,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:FZ,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:jZ,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:HZ,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:VZ,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:WZ,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:qZ,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:BZ,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:fZ,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:mZ,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:gZ,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:yZ,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:SZ,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:EZ,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): ${wL.join(", ")} - \u2022 Set at creation, immutable thereafter: ${kL.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:bZ,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:vZ,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:AZ,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:_Z,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:TZ,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:GZ,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:zZ,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:OL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var uSe=w((vpi,pEt)=>{"use strict";pEt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var gZn=uSe(),yv=Object.prototype.toString;function fSe(e){return yv.call(e)==="[object Array]"}function lSe(e){return typeof e>"u"}function yZn(e){return e!==null&&!lSe(e)&&e.constructor!==null&&!lSe(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function SZn(e){return yv.call(e)==="[object ArrayBuffer]"}function EZn(e){return typeof FormData<"u"&&e instanceof FormData}function bZn(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function _Zn(e){return typeof e=="string"}function TZn(e){return typeof e=="number"}function hEt(e){return e!==null&&typeof e=="object"}function uY(e){if(yv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function vZn(e){return yv.call(e)==="[object Date]"}function AZn(e){return yv.call(e)==="[object File]"}function RZn(e){return yv.call(e)==="[object Blob]"}function mEt(e){return yv.call(e)==="[object Function]"}function wZn(e){return hEt(e)&&mEt(e.pipe)}function kZn(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function IZn(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function xZn(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function pSe(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),fSe(e))for(var n=0,r=e.length;n{"use strict";var W0=Qc();function yEt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}SEt.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(yEt(u)+"="+yEt(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 bEt=w((wpi,EEt)=>{"use strict";var PZn=Qc();function dY(){this.handlers=[]}dY.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};dY.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};dY.prototype.forEach=function(t){PZn.forEach(this.handlers,function(r){r!==null&&t(r)})};EEt.exports=dY});var TEt=w((kpi,_Et)=>{"use strict";var CZn=Qc();_Et.exports=function(t,n){CZn.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var fY=w((Ipi,vEt)=>{"use strict";vEt.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 pY=w((xpi,AEt)=>{"use strict";var MZn=fY();AEt.exports=function(t,n,r,i,s){var o=new Error(t);return MZn(o,n,r,i,s)}});var hSe=w((Opi,REt)=>{"use strict";var DZn=pY();REt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(DZn("Request failed with status code "+r.status,r.config,null,r.request,r))}});var kEt=w((Npi,wEt)=>{"use strict";var hY=Qc();wEt.exports=hY.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),hY.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),hY.isString(s)&&c.push("path="+s),hY.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 xEt=w((Ppi,IEt)=>{"use strict";IEt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var NEt=w((Cpi,OEt)=>{"use strict";OEt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var mSe=w((Mpi,PEt)=>{"use strict";var LZn=xEt(),UZn=NEt();PEt.exports=function(t,n){return t&&!LZn(n)?UZn(t,n):n}});var MEt=w((Dpi,CEt)=>{"use strict";var gSe=Qc(),FZn=["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"];CEt.exports=function(t){var n={},r,i,s;return t&&gSe.forEach(t.split(` -`),function(a){if(s=a.indexOf(":"),r=gSe.trim(a.substr(0,s)).toLowerCase(),i=gSe.trim(a.substr(s+1)),r){if(n[r]&&FZn.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 UEt=w((Lpi,LEt)=>{"use strict";var DEt=Qc();LEt.exports=DEt.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=DEt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var jEt=w((Upi,FEt)=>{"use strict";var mY=Qc(),jZn=hSe(),HZn=kEt(),qZn=lY(),BZn=mSe(),GZn=MEt(),zZn=UEt(),ySe=pY();FEt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;mY.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=BZn(t.baseURL,t.url);c.open(t.method.toUpperCase(),qZn(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?GZn(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};jZn(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(ySe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(ySe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(ySe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},mY.isStandardBrowserEnv()){var p=(t.withCredentials||zZn(d))&&t.xsrfCookieName?HZn.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&mY.forEach(o,function(m,y){typeof s>"u"&&y.toLowerCase()==="content-type"?delete o[y]:c.setRequestHeader(y,m)}),mY.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 qEt=w((Fpi,HEt)=>{var d1;HEt.exports=function(){if(!d1){try{d1=zJ()("follow-redirects")}catch{}typeof d1!="function"&&(d1=function(){})}d1.apply(null,arguments)}});var OSe=w((jpi,xSe)=>{var p1=Z("url"),f1=p1.URL,VZn=Z("http"),WZn=Z("https"),TSe=Z("stream").Writable,vSe=Z("assert"),BEt=qEt();(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 ASe=!1;try{vSe(new f1(""))}catch(e){ASe=e.code==="ERR_INVALID_URL"}var KZn=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],RSe=["abort","aborted","connect","error","socket","timeout"],wSe=Object.create(null);RSe.forEach(function(e){wSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var ESe=h1("ERR_INVALID_URL","Invalid URL",TypeError),bSe=h1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),ZZn=h1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",bSe),YZn=h1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),JZn=h1("ERR_STREAM_WRITE_AFTER_END","write after end"),XZn=TSe.prototype.destroy||zEt;function Gu(e,t){TSe.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 bSe?i:new bSe({cause:i}))}},this._performRequest()}Gu.prototype=Object.create(TSe.prototype);Gu.prototype.abort=function(){ISe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Gu.prototype.destroy=function(e){return ISe(this._currentRequest,e),XZn.call(this,e),this};Gu.prototype.write=function(e,t,n){if(this._ending)throw new JZn;if(!Sv(e)&&!e9n(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 YZn),this.abort())};Gu.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}};Gu.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};Gu.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};Gu.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){Gu.prototype[e]=function(t,n){return this._currentRequest[e](t,n)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(Gu.prototype,e,{get:function(){return this._currentRequest[e]}})});Gu.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))}};Gu.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 RSe)r.on(i,wSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?p1.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(ISe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new ZZn;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=[],SSe(/^content-/i,this._options.headers));var o=SSe(/^host$/i,this._options.headers),a=kSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:p1.format(Object.assign(a,{host:c})),l=QZn(n,u);if(BEt("redirecting to",l.href),this._isRedirect=!0,_Se(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!$Zn(l.host,c))&&SSe(/^(?:(?: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 GEt(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 t9n(u)?u=_Se(u):Sv(u)?u=_Se(kSe(u)):(d=l,l=VEt(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"),vSe.equal(l.protocol,i,"protocol mismatch"),BEt("options",l),new Gu(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 zEt(){}function kSe(e){var t;if(ASe)t=new f1(e);else if(t=VEt(p1.parse(e)),!Sv(t.protocol))throw new ESe({input:e});return t}function QZn(e,t){return ASe?new f1(e,t):kSe(p1.resolve(t,e))}function VEt(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 _Se(e,t){var n=t||{};for(var r of KZn)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 SSe(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 h1(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 ISe(e,t){for(var n of RSe)e.removeListener(n,wSe[n]);e.on("error",zEt),e.destroy(t)}function $Zn(e,t){vSe(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 e9n(e){return typeof e=="object"&&"length"in e}function t9n(e){return f1&&e instanceof f1}xSe.exports=GEt({http:VZn,https:WZn});xSe.exports.wrap=GEt});var NSe=w((Hpi,n9n)=>{n9n.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 XEt=w((qpi,JEt)=>{"use strict";var m1=Qc(),WEt=hSe(),r9n=mSe(),i9n=lY(),s9n=Z("http"),o9n=Z("https"),a9n=OSe().http,c9n=OSe().https,KEt=Z("url"),u9n=Z("zlib"),l9n=NSe(),gY=pY(),PSe=fY(),ZEt=/https:?/;function YEt(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,YEt(s,t,s.href)}}JEt.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/"+l9n.version,a&&!m1.isStream(a)){if(!Buffer.isBuffer(a))if(m1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(m1.isString(a))a=Buffer.from(a,"utf-8");else return o(gY("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=r9n(t.baseURL,t.url),p=KEt.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=ZEt.test(h),S=E?t.httpsAgent:t.httpAgent,b={path:i9n(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?b.socketPath=t.socketPath:(b.hostname=p.hostname,b.port=p.port);var _=t.proxy;if(!_&&_!==!1){var T=h.slice(0,-1)+"_proxy",A=process.env[T]||process.env[T.toUpperCase()];if(A){var R=KEt.parse(A),x=process.env.no_proxy||process.env.NO_PROXY,k=!0;if(x){var N=x.split(",").map(function(B){return B.trim()});k=!N.some(function(B){return B?B==="*"||B[0]==="."&&p.hostname.substr(p.hostname.length-B.length)===B?!0:p.hostname===B:!1})}if(k&&(_={host:R.hostname,port:R.port,protocol:R.protocol},R.auth)){var P=R.auth.split(":");_.auth={username:P[0],password:P[1]}}}}_&&(b.headers.host=p.hostname+(p.port?":"+p.port:""),YEt(b,_,h+"//"+p.hostname+(p.port?":"+p.port:"")+b.path));var C,F=E&&(_?ZEt.test(_.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=F?o9n:s9n:(t.maxRedirects&&(b.maxRedirects=t.maxRedirects),C=F?c9n:a9n),t.maxBodyLength>-1&&(b.maxBodyLength=t.maxBodyLength);var V=C.request(b,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(u9n.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,WEt(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(gY("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,G)))}),X.on("error",function(H){V.aborted||o(PSe(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=m1.stripBOM(H))),M.data=H,WEt(s,o,M)})}}});if(V.on("error",function(B){V.aborted&&B.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(PSe(B,t,null,V))}),t.timeout){var K=parseInt(t.timeout,10);if(isNaN(K)){o(gY("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",V));return}V.setTimeout(K,function(){V.abort(),o(gY("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))}),m1.isStream(a)?a.on("error",function(B){o(PSe(B,t,null,V))}).pipe(V):V.end(a)})}});var SY=w((Bpi,ebt)=>{"use strict";var Ca=Qc(),QEt=TEt(),d9n=fY(),f9n={"Content-Type":"application/x-www-form-urlencoded"};function $Et(e,t){!Ca.isUndefined(e)&&Ca.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function p9n(){var e;return typeof XMLHttpRequest<"u"?e=jEt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=XEt()),e}function h9n(e,t,n){if(Ca.isString(e))try{return(t||JSON.parse)(e),Ca.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}var yY={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:p9n(),transformRequest:[function(t,n){return QEt(n,"Accept"),QEt(n,"Content-Type"),Ca.isFormData(t)||Ca.isArrayBuffer(t)||Ca.isBuffer(t)||Ca.isStream(t)||Ca.isFile(t)||Ca.isBlob(t)?t:Ca.isArrayBufferView(t)?t.buffer:Ca.isURLSearchParams(t)?($Et(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Ca.isObject(t)||n&&n["Content-Type"]==="application/json"?($Et(n,"application/json"),h9n(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&&Ca.isString(t)&&t.length)try{return JSON.parse(t)}catch(o){if(s)throw o.name==="SyntaxError"?d9n(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}};yY.headers={common:{Accept:"application/json, text/plain, */*"}};Ca.forEach(["delete","get","head"],function(t){yY.headers[t]={}});Ca.forEach(["post","put","patch"],function(t){yY.headers[t]=Ca.merge(f9n)});ebt.exports=yY});var nbt=w((Gpi,tbt)=>{"use strict";var m9n=Qc(),g9n=SY();tbt.exports=function(t,n,r){var i=this||g9n;return m9n.forEach(r,function(o){t=o.call(i,t,n)}),t}});var CSe=w((zpi,rbt)=>{"use strict";rbt.exports=function(t){return!!(t&&t.__CANCEL__)}});var obt=w((Vpi,sbt)=>{"use strict";var ibt=Qc(),MSe=nbt(),y9n=CSe(),S9n=SY();function DSe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}sbt.exports=function(t){DSe(t),t.headers=t.headers||{},t.data=MSe.call(t,t.data,t.headers,t.transformRequest),t.headers=ibt.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),ibt.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||S9n.adapter;return n(t).then(function(i){return DSe(t),i.data=MSe.call(t,i.data,i.headers,t.transformResponse),i},function(i){return y9n(i)||(DSe(t),i&&i.response&&(i.response.data=MSe.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var LSe=w((Wpi,abt)=>{"use strict";var Ec=Qc();abt.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 fbt=w((Kpi,dbt)=>{"use strict";var ubt=NSe(),USe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){USe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var cbt={},E9n=ubt.version.split(".");function lbt(e,t){for(var n=t?t.split("."):E9n,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)}}dbt.exports={isOlderVersion:lbt,assertOptions:b9n,validators:USe}});var Sbt=w((Zpi,ybt)=>{"use strict";var mbt=Qc(),_9n=lY(),pbt=bEt(),hbt=obt(),EY=LSe(),gbt=fbt(),K0=gbt.validators;function g1(e){this.defaults=e,this.interceptors={request:new pbt,response:new pbt}}g1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=EY(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&&gbt.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=[hbt,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=hbt(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};g1.prototype.getUri=function(t){return t=EY(this.defaults,t),_9n(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};mbt.forEach(["delete","get","head","options"],function(t){g1.prototype[t]=function(n,r){return this.request(EY(r||{},{method:t,url:n,data:(r||{}).data}))}});mbt.forEach(["post","put","patch"],function(t){g1.prototype[t]=function(n,r,i){return this.request(EY(i||{},{method:t,url:n,data:r}))}});ybt.exports=g1});var jSe=w((Ypi,Ebt)=>{"use strict";function FSe(e){this.message=e}FSe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};FSe.prototype.__CANCEL__=!0;Ebt.exports=FSe});var _bt=w((Jpi,bbt)=>{"use strict";var T9n=jSe();function bY(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 T9n(i),t(n.reason))})}bY.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};bY.source=function(){var t,n=new bY(function(i){t=i});return{token:n,cancel:t}};bbt.exports=bY});var vbt=w((Xpi,Tbt)=>{"use strict";Tbt.exports=function(t){return function(r){return t.apply(null,r)}}});var Rbt=w((Qpi,Abt)=>{"use strict";Abt.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var Ibt=w(($pi,HSe)=>{"use strict";var wbt=Qc(),v9n=uSe(),_Y=Sbt(),A9n=LSe(),R9n=SY();function kbt(e){var t=new _Y(e),n=v9n(_Y.prototype.request,t);return wbt.extend(n,_Y.prototype,t),wbt.extend(n,t),n}var tp=kbt(R9n);tp.Axios=_Y;tp.create=function(t){return kbt(A9n(tp.defaults,t))};tp.Cancel=jSe();tp.CancelToken=_bt();tp.isCancel=CSe();tp.all=function(t){return Promise.all(t)};tp.spread=vbt();tp.isAxiosError=Rbt();HSe.exports=tp;HSe.exports.default=tp});var Obt=w((ehi,xbt)=>{xbt.exports=Ibt()});var Pbt=w((thi,Nbt)=>{var Z0=1e3,Y0=Z0*60,J0=Y0*60,bv=J0*24,w9n=bv*7,k9n=bv*365.25;Nbt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return I9n(e);if(n==="number"&&isFinite(e))return t.long?O9n(e):x9n(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function I9n(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*k9n;case"weeks":case"week":case"w":return n*w9n;case"days":case"day":case"d":return n*bv;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*Y0;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 x9n(e){var t=Math.abs(e);return t>=bv?Math.round(e/bv)+"d":t>=J0?Math.round(e/J0)+"h":t>=Y0?Math.round(e/Y0)+"m":t>=Z0?Math.round(e/Z0)+"s":e+"ms"}function O9n(e){var t=Math.abs(e);return t>=bv?TY(e,t,bv,"day"):t>=J0?TY(e,t,J0,"hour"):t>=Y0?TY(e,t,Y0,"minute"):t>=Z0?TY(e,t,Z0,"second"):e+" ms"}function TY(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var qSe=w((nhi,Cbt)=>{function N9n(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=Pbt(),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"%";b++;let R=n.formatters[A];if(typeof R=="function"){let x=y[b];T=R.call(g,x),y.splice(b,1),b--}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{Ml.formatArgs=C9n;Ml.save=M9n;Ml.load=D9n;Ml.useColors=P9n;Ml.storage=L9n();Ml.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`."))}})();Ml.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 P9n(){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 C9n(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+vY.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)}Ml.log=console.debug||console.log||(()=>{});function M9n(e){try{e?Ml.storage.setItem("debug",e):Ml.storage.removeItem("debug")}catch{}}function D9n(){let e;try{e=Ml.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function L9n(){try{return localStorage}catch{}}vY.exports=qSe()(Ml);var{formatters:U9n}=vY.exports;U9n.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Lbt=w((Ma,RY)=>{var F9n=Z("tty"),AY=Z("util");Ma.init=V9n;Ma.log=B9n;Ma.formatArgs=H9n;Ma.save=G9n;Ma.load=z9n;Ma.useColors=j9n;Ma.destroy=AY.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=BJ();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 j9n(){return"colors"in Ma.inspectOpts?!!Ma.inspectOpts.colors:F9n.isatty(process.stderr.fd)}function H9n(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+"+RY.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=q9n()+t+" "+e[0]}function q9n(){return Ma.inspectOpts.hideDate?"":new Date().toISOString()+" "}function B9n(...e){return process.stderr.write(AY.format(...e)+` -`)}function G9n(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function z9n(){return process.env.DEBUG}function V9n(e){e.inspectOpts={};let t=Object.keys(Ma.inspectOpts);for(let n=0;nt.trim()).join(" ")};Dbt.O=function(e){return this.inspectOpts.colors=this.useColors,AY.inspect(e,this.inspectOpts)}});var GSe=w((rhi,BSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?BSe.exports=Mbt():BSe.exports=Lbt()});var Fbt=w((ihi,Ubt)=>{var{Transform:W9n}=Z("stream"),zSe=class extends W9n{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)))}};Ubt.exports=zSe});var qbt=w((ohi,Hbt)=>{var{EventEmitter:K9n}=Z("events"),Zh=GSe()("localtunnel:client"),VSe=Z("fs"),jbt=Z("net"),Z9n=Z("tls"),Y9n=Fbt();Hbt.exports=class extends K9n{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=jbt.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:VSe.readFileSync(t.local_cert),key:VSe.readFileSync(t.local_key),ca:t.local_ca?[VSe.readFileSync(t.local_ca)]:void 0},d=t.local_https?Z9n.connect({host:i,port:s,...l()}):jbt.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 Y9n({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 zbt=w((chi,Gbt)=>{var{parse:J9n}=Z("url"),{EventEmitter:Bbt}=Z("events"),X9n=Obt(),y1=GSe()("localtunnel:client"),Q9n=qbt();Gbt.exports=class extends Bbt{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:J9n(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(){X9n.get(a,i).then(u=>{let l=u.data;if(y1("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=>(y1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(Bbt.defaultMaxListeners||10)),this.tunnelCluster=new Q9n(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{y1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,y1("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--,y1("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 Wbt=w((uhi,Vbt)=>{var $9n=zbt();Vbt.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new $9n(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 n_t={};Rr(n_t,{__setActiveTunnelForTesting:()=>oYn,buildReviewUrl:()=>vv,clearE2EKey:()=>QSe,closeTunnel:()=>JSe,e2eEncrypt:()=>XSe,getTunnelUrl:()=>t_t,isE2EActive:()=>b1,isRemoteReviewEnabled:()=>Bi,isTunnelOpen:()=>iYn,openTunnel:()=>jg,signJWT:()=>$bt,verifyTunnelJWT:()=>Yh});import{createCipheriv as eYn,createHmac as Jbt,randomBytes as ZSe,timingSafeEqual as tYn}from"node:crypto";async function rYn(){if(!(!Ts||Tv||_v))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,KSe()}}function Qbt(){wY(),S1=setInterval(rYn,nYn),S1.unref()}function wY(){S1&&(clearInterval(S1),S1=null)}function Kbt(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function $bt(e){let t=Kbt(JSON.stringify({alg:"HS256",typ:"JWT"})),n=Kbt(JSON.stringify(e)),r=Jbt("sha256",Xbt).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Yh(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=Jbt("sha256",Xbt).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(!tYn(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_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 KSe(){if(_v||Tv||!WSe)return;_v=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,YSe.default)({port:WSe});Ts=r,e_t(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),Qbt(),_v=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}_v=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function e_t(e){e.on("close",()=>{Ts===e&&(Ts=null,wY(),console.error("[haiku] Tunnel closed unexpectedly"),Tv||KSe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,wY(),Tv||KSe())})}async function jg(e){if(Ts)return Ts.url;if(_v){let n=Date.now()+Zbt;if(await new Promise((r,i)=>{let s=setInterval(()=>{_v?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${Zbt}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}WSe=e,Tv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${Ybt}ms`)),Ybt)),i=await Promise.race([(0,YSe.default)({port:e}),r]);return Ts=i,e_t(i),console.error(`[haiku] Tunnel opened: ${i.url}`),Qbt(),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 JSe(){Tv=!0,wY(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function t_t(){return Ts?.url??null}function iYn(){return Ts!==null}function Bi(){return zo.remoteReview}function vv(e,t,n){let r=ZSe(32);E1.set(e,r);let i=Math.floor(Date.now()/1e3),s=$bt({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${sYn}/review/#${s}`}function XSe(e,t){let n=E1.get(e);if(!n)return null;let r=ZSe(12),i=eYn("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 b1(e){return e?E1.has(e):E1.size>0}function QSe(e){E1.delete(e)}function oYn(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var YSe,Xbt,E1,Ts,WSe,_v,Tv,S1,nYn,Zbt,Ybt,sYn,Jh=v(()=>{"use strict";YSe=Se(Wbt(),1);Ci();Xbt=ZSe(32),E1=new Map,Ts=null,WSe=null,_v=!1,Tv=!1,S1=null,nYn=3e4;Zbt=3e4,Ybt=15e3;sYn=gf.siteUrl});import{randomBytes as aYn}from"node:crypto";function uYn(){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 o_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 lYn(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function dYn(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return r_t;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?r_t:t}function a_t(e){let t=aYn(32).toString("base64url");return $Se.set(e,{nonce:t,expiresAt:Date.now()+dYn()}),t}function c_t(e){let t=$Se.get(e);return t?t.expiresAt{if(!Bi())return n.send({nonce:"local-mode-no-csrf-required"});let r=_1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Yh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=a_t(i.payload.sid);return n.send({nonce:s})})}var cYn,i_t,s_t,r_t,$Se,eEe=v(()=>{"use strict";Jh();Hg();cYn=new Set(["POST","PUT","PATCH","DELETE"]),i_t="query_param_token_disallowed_on_mutating_route",s_t="X-Haiku-CSRF";r_t=3600*1e3;$Se=new Map});function _1(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=_1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Yh(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=_1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Yh(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";Xc();Jh();eEe();Q0=X0});import{existsSync as d_t}from"node:fs";import{join as f_t}from"node:path";function fYn(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function jE(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 fYn(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 Da(e){try{let t=pe(e);return d_t(f_t(t,"intent.md"))}catch{return!1}}function Xh(e,t){try{let n=pe(e);return d_t(f_t(n,"stages",t))}catch{return!1}}var Av=v(()=>{"use strict";ze()});import{existsSync as kY,readdirSync as tEe,readFileSync as pYn}from"node:fs";import{join as v1}from"node:path";function h_t(e){return typeof e!="string"||e.length<=p_t?e:`${e.slice(0,p_t)}\u2026`}function hYn(e){let t={...e};t.agent_rationale=h_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:h_t(r.rationale_excerpt)})),t}function mYn(e){return/^DA-\d+$/.test(e)}function T1(e){try{let t=pYn(e,"utf-8");return JSON.parse(t)}catch{return null}}function gYn(e){let t=pe(e),n=v1(t,"stages");if(!kY(n))return[];let r=[],i;try{i=tEe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=v1(n,s,"drift-assessments");if(!kY(o))continue;let a;try{a=tEe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=v1(o,c),d=T1(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 m_t(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(!Da(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=gYn(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let y=T1(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=T1(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=T1(m.absPath);y!==null&&h.push(hYn(y))}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(!Da(r)){n.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(!mYn(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=pe(r),o=v1(s,"stages");if(!kY(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=tEe(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=v1(o,c,"drift-assessments",`${i}.json`);if(kY(u)){let l=T1(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 p_t,g_t=v(()=>{"use strict";ze();Hg();Av();p_t=256});import{createReadStream as yYn,existsSync as SYn}from"node:fs";function IY(e,t){e.status(400).send({error:t,code:t})}function nEe(e,t){e.status(404).send({error:t,code:t})}function S_t(e,t){if(!SYn(t)){nEe(e,"sidecar_not_found");return}let n=Tyt(t),r=n?EYn[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send(yYn(t))}function E_t(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)){IY(n,"bad_param");return}if(!y_t.test(s)){IY(n,"bad_sha");return}if(!Da(r)){nEe(n,"intent_not_found");return}let o=vyt(pe(r),i,s);S_t(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)){IY(n,"bad_param");return}if(!y_t.test(i)){IY(n,"bad_sha");return}if(!Da(r)){nEe(n,"intent_not_found");return}let s=Ayt(pe(r),i);S_t(n,s)})}var y_t,EYn,b_t=v(()=>{"use strict";A0();ze();Hg();Av();y_t=/^[0-9a-f]{64}$/,EYn={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as bYn}from"node:zlib";var _Yn,Bd,xY=v(()=>{"use strict";_Yn="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",Bd=bYn(Buffer.from(_Yn,"base64")).toString("utf-8")});import{existsSync as np,readdirSync as $0,readFileSync as Rv,writeFileSync as TYn}from"node:fs";import{join as wo}from"node:path";function OY(e){let t=pe(e.slug),n=wo(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 g of c){let E=wo(t,"stages",g,"units");if(!np(E))continue;let S=Nye(i,g,s),b=Pye(i,g,s);for(let _ of $0(E).filter(T=>T.endsWith(".md"))){let T=wo(E,_),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:g,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:g,unitPath:T,reviewRoles:S,approvalRoles:b,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}:{},b=Array.isArray(g.fm.inputs)?g.fm.inputs:[];for(let T of g.reviewRoles)S[T]||(S[T]=Nl(g.unitPath,{intentDir:t,unitInputs:b}));let _=g.fm.approvals&&typeof g.fm.approvals=="object"?{...g.fm.approvals}:{};for(let T of g.approvalRoles)_[T]||(_[T]=jd(t,E));De(g.unitPath,"reviews",S),De(g.unitPath,"approvals",_),d.add(g.stage),f++}let p=c.filter(g=>d.has(g)),h=0;for(let g of p){let E=wo(t,"stages",g),S=wo(E,"elaboration.md"),b=new Date().toISOString();if(np(S)){let _=re(Rv(S,"utf8")).data,T=!1;_.verified_at||(De(S,"verified_at",b),T=!0),_.decompose_verified_at||(De(S,"decompose_verified_at",b),T=!0),T&&h++}else{let _=`# Elaboration (synthesized by /haiku:haiku-debug) +`+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+"+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:b,verified_at:b,decompose_verified_at:b,intent:e.slug,stage:g,synthesized_by:"force_complete"};TYn(S,__t.default.stringify(_,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()});De(n,"approvals",g),m=!0}let y=0;if(e.closeOpenFeedback){let g=p.map(S=>wo(t,"stages",S,"feedback"));a===o.length-1&&g.push(wo(t,"feedback"));let E=new Date().toISOString();for(let S of g)if(np(S))for(let b of $0(S).filter(_=>_.endsWith(".md"))){let _=wo(S,b),T=re(Rv(_,"utf8")).data,A=T.closed_at,R=T.rejected_at;if(typeof A=="string"&&A.length>0||typeof R=="string"&&R.length>0)continue;De(_,"closed_at",E);let x=T.closed_by;typeof x=="string"&&x.length>0||De(_,"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 ex(e){let t=wo(pe(e.slug),"intent.md");return np(t)?(De(t,e.field,e.value),{ok:!0}):{ok:!1,error:"intent_not_found"}}function NY(e){let t=pe(e.slug),n=wo(t,"stages");if(!np(n))return{ok:!1,error:"no_stages_dir"};let r=0,i=0;for(let s of $0(n,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=wo(n,s.name,"units");if(np(o))for(let a of $0(o).filter(c=>c.endsWith(".md"))){let c=wo(o,a),u=re(Rv(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]=Nl(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&&De(c,"reviews",d),Object.keys(p).length>0&&De(c,"approvals",p)}}return{ok:!0,reviews_refreshed:r,approvals_refreshed:i}}function PY(e){let t=pe(e.slug),n=wo(t,"intent.md");if(!np(n))return{ok:!1,error:"intent_not_found"};let i=re(Rv(n,"utf8")).data.studio||"";if(!i)return{ok:!1,error:"intent_missing_studio"};let s=wo(t,"stages",e.stage,"units");if(!np(s))return{ok:!1,error:"units_dir_not_found",details:{stage:e.stage}};let o=$0(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=wo(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=bs(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 De(a,"iterations",c),{ok:!0,unit_file:o,iterations_written:c.length}}function tx(e){let t=pe(e.slug),n=e.stage?wo(t,"stages",e.stage,"feedback"):wo(t,"feedback");if(!np(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=$0(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=wo(n,s),a=[];for(let[c,u]of Object.entries(e.patch))De(o,c,u),a.push(c);return{ok:!0,written_keys:a}}function CY(e){let t=pe(e.slug),n=wo(t,"intent.md");if(!np(n))return{ok:!1,error:"intent_not_found"};let i=re(Rv(n,"utf8")).data.studio||"";return i?{ok:!0,position:Xf({slug:e.slug,intentDir:t,studio:i})}:{ok:!1,error:"intent_missing_studio"}}var __t,rEe=v(()=>{"use strict";__t=Se(Xt(),1);ze();ns();xa();XL();Yf()});import{existsSync as MY,readdirSync as v_t,readFileSync as A_t}from"node:fs";import{join as DY}from"node:path";function vYn(){let e=DY(ve(),"intents");if(!MY(e))return[];let t=[];for(let n of v_t(e,{withFileTypes:!0})){if(!n.isDirectory())continue;let r=DY(e,n.name,"intent.md");if(MY(r))try{let i=re(A_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 AYn(e){if(!gn(e))return{ok:!1,error:"invalid_slug"};let t=pe(e),n=DY(t,"intent.md");if(!MY(n))return{ok:!1,error:"intent_not_found"};let r=re(A_t(n,"utf8")).data,i=DY(t,"stages"),s=MY(i)?v_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 R_t(e){e.get("/debug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Bd)}),e.get("/debug/:slug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Bd)}),e.get("/api/debug/intents",async(t,n)=>{Gn(t,n,null)&&n.send({intents:vYn()})}),e.get("/api/debug/intents/:intent",async(t,n)=>{if(!Gn(t,n,null))return;let r=AYn(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(!Gn(t,n,null))return;let r=t.params.intent;if(!gn(r)){n.status(400).send({error:"invalid_slug"});return}try{let i=CY({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(!X0(t,n,r))return;if(!T_t.has(i)){n.status(400).send({error:"unsupported_op",message:`op must be one of: ${[...T_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=OY({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:ex({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=ex({slug:r,field:a,value:s.value});break}case"reset_drift":{o=NY({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=PY({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:tx({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=tx({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 T_t,w_t=v(()=>{"use strict";xY();rEe();ze();Hg();Av();T_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:sd,plugin_version:RYn})),e.get("/",async(n,r)=>{r.type("text/html; charset=utf-8").send(Bd)}),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(Bd);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)?hD:pD;i.status(413).send({error:"payload_too_large",max_bytes:l});return}i.status(o).send({error:"internal_error",message:a})})}var RYn,I_t=v(()=>{"use strict";bT();xY();l_();RYn=bS()});function iEe(e){return e.match(/\/(?:api\/session|review|question|direction|files|mockups|wireframe|stage-artifacts|question-image)\/([^/]+)/)?.[1]??null}async function x_t(e,t,n){if(t.statusCode>=400||t.statusCode===204||t.statusCode===205||t.statusCode===304)return n;let r=iEe(e.url.split("?")[0]);if(!r||!b1(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=XSe(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 O_t=v(()=>{"use strict";Jh()});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 sEe=v(()=>{"use strict"});import{readFile as wYn}from"node:fs/promises";import{dirname as LY,relative as kYn,resolve as aEe,sep as oEe}from"node:path";function cEe(e){return e.length>0&&!/^[a-z][a-z0-9+.-]*:/i.test(e)&&!e.startsWith("//")&&!e.startsWith("/")&&!e.startsWith("#")}function P_t(e,t){let n=t.endsWith(oEe)?t:t+oEe;return e===t||e.startsWith(n)}function N_t(e,t,n){return e.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi,(r,i,s)=>{let o=s.trim();return cEe(o)?`url("${kYn(n,aEe(t,o)).split(oEe).join("/")}")`:r})}async function C_t(e,t,n,r=0){if(r>3)return null;let i;try{i=await wYn(e,"utf-8")}catch{return null}let s=LY(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(!cEe(l))continue;let f=aEe(s,l);if(!P_t(f,t))continue;let p=await C_t(f,t,n,r+1);p!=null&&(a+=N_t(i.slice(c,d),s,n),a+=p,c=d+u[0].length)}return a+=N_t(i.slice(c),s,n),a}async function UY(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||!cEe(f))continue;let p=aEe(r,f);if(!P_t(p,n))continue;let h=await C_t(p,n,r);h!=null&&(s+=e.slice(o,u),s+=``,o=u+c.length)}return s+=e.slice(o),s}function M_t(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=LY(e);for(let i=0;i{"use strict"});import{readFile as D_t,realpath as lEe}from"node:fs/promises";import{extname as L_t,resolve as dEe}from"node:path";async function fEe(e,t){let n=dEe(e),r=dEe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await lEe(r).catch(()=>null),s=await lEe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function A1(e,t,n){return cut.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function pEe(e,t){try{let n=await D_t(t),r=L_t(t).toLowerCase(),i=IYn[r],s=xYn.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 hEe(e,t,n){if(!OYn.has(L_t(t).toLowerCase()))return pEe(e,t);let r;try{let i=await D_t(t,"utf-8"),s=await lEe(n).catch(()=>dEe(n));r=await UY(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 fEe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return hEe(e,r.path,t)}var IYn,xYn,OYn,mEe=v(()=>{"use strict";bT();uEe();IYn={".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"},xYn=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);OYn=new Set([".html",".htm"])});import{join as NYn}from"node:path";function U_t(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(!Da(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&&!FE.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${FE.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(!Da(r)){n.status(404).send({error:"Intent not found"});return}let i=t.query?.status;if(i&&!FE.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${FE.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=NYn(pe(r),"stages",i,"feedback");await nx(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:hD},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(!Da(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=jE(n,t.body,Xde);if(!s.ok)return;let o=s.data.inline_anchor,a=cv(s.data.body),c=Xo(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.`};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:S3},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(!Da(r)){n.status(404).send({error:"Intent not found"});return}if(!Q0(t,n,r))return;let o=jE(n,t.body,Qde);if(!o.ok)return;if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let a=iSe(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}Fg(`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(!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(!Da(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=oSe(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(!Da(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=aY(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}Fg(`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:S3},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(!Da(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=jE(n,t.body,$de);if(!o.ok)return;let a=cv(o.data.body),c=sSe(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}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}.`};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 F_t=v(()=>{"use strict";bT();dye();ze();sEe();Hg();mEe();Av()});import{realpath as j_t}from"node:fs/promises";import{dirname as H_t,join as PYn,resolve as q_t}from"node:path";function B_t(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||A1(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?q_t(H_t(H_t(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 fEe(l,i);if(!d.ok){u=!0;continue}return hEe(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)||A1(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,PYn(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)||A1(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)||A1(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 j_t(a).catch(()=>null),l=await j_t(c).catch(()=>q_t(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return pEe(n,a)})}var G_t=v(()=>{"use strict";Xc();Hg();mEe()});import{EventEmitter as CYn}from"node:events";function z_t(e,t){let n=`intent:${e}`;return FY.on(n,t),()=>{FY.off(n,t)}}function Gd(e,t){FY.emit(`intent:${e}`,t)}var FY,rx=v(()=>{"use strict";FY=new CYn;FY.setMaxListeners(200)});import{spawn as MYn}from"node:child_process";import{accessSync as DYn,constants as LYn,existsSync as UYn,mkdirSync as FYn,readdirSync as jYn,rmSync as HYn}from"node:fs";import{homedir as SEe,tmpdir as qYn}from"node:os";import{join as ta}from"node:path";function BYn(e=process.platform,t=process.env,n=SEe(),r=i=>{try{return jYn(i)}catch{return[]}}){let i=t.PLAYWRIGHT_BROWSERS_PATH&&t.PLAYWRIGHT_BROWSERS_PATH!=="0"?t.PLAYWRIGHT_BROWSERS_PATH:e==="darwin"?ta(n,"Library","Caches","ms-playwright"):e==="win32"?ta(n,"AppData","Local","ms-playwright"):ta(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=ta(i,s[0]);if(e==="win32")return ta(o,"chrome-win","chrome.exe");if(e!=="darwin")return ta(o,"chrome-linux","chrome");let a=r(o).find(d=>d.startsWith("chrome-mac"));if(!a)return null;let c=ta(o,a),u=r(c).find(d=>d.endsWith(".app"));if(!u)return null;let l=u.slice(0,-4);return ta(c,u,"Contents","MacOS",l)}function GYn(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||ta(SEe(),"AppData","Local");return[ta(n,"Google\\Chrome\\Application\\chrome.exe"),ta(r,"Google\\Chrome\\Application\\chrome.exe"),ta(i,"Google\\Chrome\\Application\\chrome.exe"),ta(n,"Microsoft\\Edge\\Application\\msedge.exe"),ta(r,"Microsoft\\Edge\\Application\\msedge.exe"),ta(n,"BraveSoftware\\Brave-Browser\\Application\\brave.exe")]}return["google-chrome","google-chrome-stable","chromium","chromium-browser","microsoft-edge","microsoft-edge-stable","brave-browser"]}function zYn(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=ta(i,e);if(n(s))return s}return null}function VYn(e=process.platform,t=process.env,n=i=>{try{return DYn(i,LYn.X_OK),!0}catch{return UYn(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=BYn(e,t,SEe(),r);if(s&&n(s))return s;for(let o of GYn(e,t)){let a=zYn(o,t,n);if(a)return a}return null}function K_t(){return gEe===void 0&&(gEe=VYn()),gEe}function WYn(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:K_t()!==null}function KYn(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 ZYn(e,t=ta(qYn(),"haiku-micro-app")){return ta(t,e)}function Z_t(e,t={}){if(!WYn())return!1;let n=K_t();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=ZYn(r);try{FYn(s,{recursive:!0})}catch{return!1}try{let o=MYn(n,KYn(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),yEe(s)}),wv.set(r,{child:o,profileDir:s}),YYn(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),yEe(s),!1}}function yEe(e){try{HYn(e,{recursive:!0,force:!0})}catch{}}function V_t(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),V_t(t,"SIGTERM"),setTimeout(()=>{V_t(t,"SIGKILL")},2e3).unref?.(),yEe(t.profileDir),!0):!1}function Y_t(){let e=0;for(let[t]of wv)t.startsWith("anon-")||$t(t)||(ix(t),e+=1);return e}function YYn(){if(W_t)return;W_t=!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,gEe,W_t,R1=v(()=>{"use strict";Xc();wv=new Map;W_t=!1});import{existsSync as J_t,readdirSync as JYn,readFileSync as XYn}from"node:fs";import{join as HY}from"node:path";function jY(e,t){return t?HY(t,"intents",e):pe(e)}function $Yn(e,t){let n=HY(jY(e,t),"intent.md");if(!J_t(n))return null;let{data:r}=re(XYn(n,"utf8"));return r}function X_t(e,t){let n=$Yn(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",c=ai(e,r,jY(e,t))??s[s.length-1],l=hv({slug:e,studio:r,stage:c,intentDir:jY(e,t),intentMode:o}).phase??"",d=QYn.has(l)?l:"",f;if(d==="elaborate"){let p=HY(jY(e,t),"stages",c),h=HY(p,"units"),m=J_t(h)?JYn(h).filter(g=>g.endsWith(".md")).map(g=>g.replace(/\.md$/,"")):[],y=w0({slug:e,studio:r,stage:c,stageDir:p,unitNames:m,mode:o});y.length>0&&(f=lye(y))}return{studio:r,stage:c,phase:d,...f?{pending_signals:f}:{}}}var QYn,Q_t=v(()=>{"use strict";ns();xa();XL();ze();QYn=new Set(["elaborate","execute","review","gate"])});import{execFileSync as e5n}from"node:child_process";function qY(e){try{return e5n(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function t5n(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 n5n(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=qY(["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 r5n(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 i5n(e){if(!Re())return null;let t=`haiku/${e}/main`,n=qY(["git","rev-parse","--verify",t])||qY(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=qY(["git","remote","get-url","origin"]),i=t5n(r);if(!i)return null;let s=n5n(n,i);if(!s)return null;let o=r5n(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=$_t.get(e);if(n&&n.expiresAt>t)return n.value;let r=i5n(e);return $_t.set(e,{value:r,expiresAt:t+s5n}),r}var s5n,$_t,tTt=v(()=>{"use strict";PT();s5n=3e4,$_t=new Map});var rTt=w(BY=>{"use strict";var o5n=Symbol.for("react.transitional.element"),a5n=Symbol.for("react.fragment");function nTt(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:o5n,type:e,key:r,ref:t!==void 0?t:null,props:n}}BY.Fragment=a5n;BY.jsx=nTt;BY.jsxs=nTt});var hTt=w(cn=>{"use strict";var _Ee=Symbol.for("react.transitional.element"),c5n=Symbol.for("react.portal"),u5n=Symbol.for("react.fragment"),l5n=Symbol.for("react.strict_mode"),d5n=Symbol.for("react.profiler"),f5n=Symbol.for("react.consumer"),p5n=Symbol.for("react.context"),h5n=Symbol.for("react.forward_ref"),m5n=Symbol.for("react.suspense"),g5n=Symbol.for("react.memo"),cTt=Symbol.for("react.lazy"),y5n=Symbol.for("react.activity"),iTt=Symbol.iterator;function S5n(e){return e===null||typeof e!="object"?null:(e=iTt&&e[iTt]||e["@@iterator"],typeof e=="function"?e:null)}var uTt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},lTt=Object.assign,dTt={};function ox(e,t,n){this.props=e,this.context=t,this.refs=dTt,this.updater=n||uTt}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 fTt(){}fTt.prototype=ox.prototype;function TEe(e,t,n){this.props=e,this.context=t,this.refs=dTt,this.updater=n||uTt}var vEe=TEe.prototype=new fTt;vEe.constructor=TEe;lTt(vEe,ox.prototype);vEe.isPureReactComponent=!0;var sTt=Array.isArray;function bEe(){}var Ri={H:null,A:null,T:null,S:null},pTt=Object.prototype.hasOwnProperty;function AEe(e,t,n){var r=n.ref;return{$$typeof:_Ee,type:e,key:t,ref:r!==void 0?r:null,props:n}}function E5n(e,t){return AEe(e.type,t,e.props)}function REe(e){return typeof e=="object"&&e!==null&&e.$$typeof===_Ee}function b5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var oTt=/\/+/g;function EEe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?b5n(""+e.key):t.toString(36)}function _5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(bEe,bEe):(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 _Ee:case c5n:o=!0;break;case cTt:return o=e._init,sx(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+EEe(e,0):r,sTt(i)?(n="",o!=null&&(n=o.replace(oTt,"$&/")+"/"),sx(i,t,n,"",function(u){return u})):i!=null&&(REe(i)&&(i=E5n(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(oTt,"$&/")+"/")+o)),t.push(i)),1;o=0;var a=r===""?".":r+":";if(sTt(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 Pe=L+"."+te;Ae[Pe]||(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),Ae[Pe]=!0)}function r(L,te,Pe){this.props=L,this.context=te,this.refs=oe,this.updater=Pe||z}function i(){}function s(L,te,Pe){this.props=L,this.context=te,this.refs=oe,this.updater=Pe||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 Pe=te.error,Ee=typeof Symbol=="function"&&Symbol.toStringTag&&L[Symbol.toStringTag]||L.constructor.name||"Object";return Pe.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===wt?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 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 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 Pe(){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))}Pe.isReactWarning=!0,Object.defineProperty(L,"key",{get:Pe,configurable:!0})}function m(){var L=u(this.type);return $u[L]||($u[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,Pe,Ee,at,On){var kt=Pe.ref;return L={$$typeof:$,type:L,key:te,props:Pe,_owner:Ee},(kt!==void 0?kt: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 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===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 b(L){var te={"=":"=0",":":"=2"};return"$"+L.replace(/[=:]/g,function(Pe){return te[Pe]})}function _(L,te){return typeof L=="object"&&L!==null&&L.key!=null?(c(L.key),b(""+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,Pe,Ee,at){var On=typeof L;(On==="undefined"||On==="boolean")&&(L=null);var kt=!1;if(L===null)kt=!0;else switch(On){case"bigint":case"string":case"number":kt=!0;break;case"object":switch(L.$$typeof){case $:case B:kt=!0;break;case ee:return kt=L._init,A(kt(L._payload),te,Pe,Ee,at)}}if(kt){kt=L,at=at(kt);var dn=Ee===""?"."+_(kt,0):Ee;return _e(at)?(Pe="",dn!=null&&(Pe=dn.replace(Ii,"$&/")+"/"),A(at,te,Pe,"",function(na){return na})):at!=null&&(S(at)&&(at.key!=null&&(kt&&kt.key===at.key||c(at.key)),Pe=g(at,Pe+(at.key==null||kt&&kt.key===at.key?"":(""+at.key).replace(Ii,"$&/")+"/")+dn),Ee!==""&&kt!=null&&S(kt)&&kt.key==null&&kt._store&&!kt._store.validated&&(Pe._store.validated=2),at=Pe),te.push(at)),1}if(kt=0,dn=Ee===""?".":Ee+":",_e(L))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')) @@ -969,50 +972,45 @@ 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 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: + const MyComponent = lazy(() => import('./MyComponent'))`,te),te.default;throw D._result}function k(){var D=Ue.H;return D===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(){Ue.asyncTransitions--}function P(L){if(Ar===null)try{var te=("require"+Math.random()).slice(0,7);Ar=(zY&&zY[te]).call(zY,"timers").setImmediate}catch{Ar=function(Ee){ay===!1&&(ay=!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=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(_t,na){at=!0,kt.then(function(Ll){if(F(te,Pe),Pe===0){try{K(Ee),P(function(){return V(Ll,_t,na)})}catch(Tp){Ue.thrownErrors.push(Tp)}if(0 ...)"))}),Ue.actQueue=null),0Ue.recentlyCreatedOwnerStacks++;return y(L,at,Ee,d(),_t?Error("react-stack-top-frame"):Rs,_t?lr(l(L)):ab)},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},Pe;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Pe},set:function(Ee){Pe=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},Pe={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=Pe,te._debugInfo=[{awaited:Pe}],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 Pe;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Pe},set:function(Ee){Pe=Ee,L.name||L.displayName||(Object.defineProperty(L,"name",{value:Ee}),L.displayName=Ee)}}),te},en.startTransition=function(L){var te=Ue.T,Pe={};Pe._updatedFibers=new Set,Ue.T=Pe;try{var Ee=L(),at=Ue.S;at!==null&&at(Pe,Ee),typeof Ee=="object"&&Ee!==null&&typeof Ee.then=="function"&&(Ue.asyncTransitions++,Ee.then(N,N),Ee.then(o,bp))}catch(On){bp(On)}finally{te===null&&Pe._updatedFibers&&(L=Pe._updatedFibers.size,Pe._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?wEe.exports=hTt():wEe.exports=mTt()});var gTt=w(VY=>{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(M){if(M==null)return null;if(typeof M=="function")return M.$$typeof===N?null:M.displayName||M.name||null;if(typeof M=="string")return M;switch(M){case y:return"Fragment";case E:return"Profiler";case g: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 b:return M.displayName||"Context";case S:return(M._context.displayName||"Context")+".Consumer";case _: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===y)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=P.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} />`,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 ie in q)ie!=="key"&&(U[ie]=q[ie])}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=kEe(),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"),b=Symbol.for("react.context"),_=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"),N=Symbol.for("react.client.reference"),P=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={};VY.Fragment=y,VY.jsx=function(M,q,U){var D=1e4>P.recentlyCreatedOwnerStacks++;return l(M,q,U,!1,D?Error("react-stack-top-frame"):B,D?V(r(M)):X)},VY.jsxs=function(M,q,U){var D=1e4>P.recentlyCreatedOwnerStacks++;return l(M,q,U,!0,D?Error("react-stack-top-frame"):B,D?V(r(M)):X)}})()});var rp=w((Qmi,IEe)=>{"use strict";process.env.NODE_ENV==="production"?IEe.exports=rTt():IEe.exports=gTt()});var yTt,STt=v(()=>{"use strict";yTt=Se(rp(),1)});var A5n,ETt,bTt=v(()=>{"use strict";A5n=Se(kEe(),1),ETt=Se(rp(),1)});var R5n,_Tt=v(()=>{"use strict";R5n=Se(rp(),1)});var w5n,TTt=v(()=>{"use strict";w5n=Se(rp(),1)});var k5n,vTt=v(()=>{"use strict";k5n=Se(rp(),1)});var ATt=v(()=>{"use strict";STt();bTt();_Tt();TTt();vTt()});var RTt=v(()=>{"use strict"});function kTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function ITt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function WY(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 xEe(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(...wTt(n,"review",t,o)),a.push({key:"execute",label:"execute",done:r}),a.push(...wTt(i,"approve",r,o)),s!=null&&a.push({key:"observations",label:"observations",done:s}),WY(a)}function wTt(e,t,n,r=!0){let i=[],s=[],o=0,a=t==="review"?"adversarial review":"adversarial approval",c=l=>t==="review"?kTt(l):ITt(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)C5n.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 C5n,xTt=v(()=>{"use strict";C5n=new Set(["spec","quality_gates","user"])});var OTt=v(()=>{"use strict";ATt();xye();RTt();gD();xTt()});import{existsSync as NTt}from"node:fs";import{join as kv}from"node:path";function NEe(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&&!OEe.has(t)}function KY(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=NEe(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 M5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function CTt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function D5n(e){return Array.isArray(e.iterations)?e.iterations:[]}function PEe(e){let{slug:t,studio:n,stage:r,stageDir:i,mode:s,groupAdversarial:o=!0}=e,c=ov(i).map(g=>({name:w9(g),fm:Jc(g)?.data??{}})).filter(g=>g.fm),u=c.map(g=>g.name),l=bs(n,r),{reviewRoles:d,approvalRoles:f}=I9(n,r,s),p=w0({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"?M5n(S.fm):CTt(S.fm))[E]),m=c.length>0&&(l.length===0||c.every(g=>{let E=D5n(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=sv(kv(i,"..",".."))?NTt(kv(i,"observations.md")):null;return xEe({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 MTt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Jc(kv(t,"intent.md"))?.data??{},o=CTt(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 k9(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:NTt(kv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),WY(i)}function ZY(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r),a=o?PEe({slug:t,studio:n,stage:o,stageDir:kv(r,"stages",o),mode:i}):MTt({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 DTt(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r);return o?PEe({slug:t,studio:n,stage:o,stageDir:kv(r,"stages",o),mode:i,groupAdversarial:!1}):MTt({intentDir:r,mode:i,groupAdversarial:!1})}function LTt(e){return PEe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:kv(e.intentDir,"stages",e.stage),mode:e.mode})}var OEe,PTt,CEe=v(()=>{"use strict";OTt();Kn();ns();xa();OEe=new Set(["spec","quality_gates","user"]),PTt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as w1,readFileSync as k1}from"node:fs";import{join as I1}from"node:path";function L5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function FTt(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 U5n(e){return e.map(t=>({...t,frontmatter:FTt(t.frontmatter)??t.frontmatter}))}function MEe(e){if(!e)return{};let t=I1(pe(e),"intent.md");if(!w1(t))return{};try{return re(k1(t,"utf8")).data}catch{return{}}}function j5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=UTt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?L5n(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=MEe(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 jTt(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:FTt(o.frontmatter)}}if(n.parsedUnits&&(r.units=U5n(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?X_t(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=MEe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=ZY({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=KY(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?MEe(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={},y={},g={};for(let E of d){try{let _=LTt({slug:o,studio:c,intentDir:f,stage:E,mode:u});_.length>0&&(p[E]=_)}catch{}let b=$i(c,E)?.data?.description;typeof b=="string"&&b.trim()&&(h[E]=b.trim());try{let _=I1(f,"stages",E,"BRIEF.md");if(w1(_)){let T=k1(_,"utf8").trim();T&&(m[E]=T)}}catch{}try{let _=I1(f,"stages",E,"observations.md");if(w1(_)){let T=k1(_,"utf8").trim();T&&(y[E]=T)}}catch{}try{let _=I1(f,"stages",E,"elaboration.md");if(w1(_)){let T=k1(_,"utf8").trim();T&&(g[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(y).length>0&&(r.stage_observations=y),Object.keys(g).length>0&&(r.stage_elaborations=g);try{let E=I1(f,"reflection.md");if(w1(E)){let S=k1(E,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=j5n({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=H5n(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 UTt,F5n,HTt=v(()=>{"use strict";Q_t();tTt();ns();xa();oye();CEe();Xc();ze();Kn();UTt=new Map,F5n=2e3});import{appendFileSync as q5n}from"node:fs";function HE(e){try{q5n(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 GTt(e){let t=Date.now(),n=t-1e3,i=(DEe.get(e)??[]).filter(s=>s>n);return i.length>=G5n?(DEe.set(e,i),!1):(i.push(t),DEe.set(e,i),!0)}function Qh(e,t){let n=zu.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Iv(e,t){HE(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),ix(e);let n=zu.get(e);if(!n){HE(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),HE(`closeSessionConnection(${e}): hint frame queued`)}catch(r){HE(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),HE(`closeSessionConnection(${e}): close frame sent`)}catch{}zu.delete(e)}function zTt(e,t){let n;try{n=JSON.parse(t)}catch{Qh(e,{type:"error",error:"invalid_json"});return}let r=fut.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"){UL(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;Pl(e,{pending_decision:{decision:o,feedback:a,annotations:c,submitted_at:new Date().toISOString()}}),s.intent_slug&&Gd(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;qL(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}:{}};BL(e,{status:"answered",selection:o}),Qh(e,{type:"ack",ok:!0})}}}var B5n,zu,DEe,qTt,G5n,BTt,x1,YY=v(()=>{"use strict";bT();rx();R1();Xc();B5n="/tmp/haiku-session-cancel.log";zu=new Map,DEe=new WeakMap,qTt=20,G5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return qTt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?qTt:Math.max(t,1)})();BTt=128,x1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return BTt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?BTt:Math.max(t,1)})()});import{existsSync as VTt,readdirSync as z5n,readFileSync as WTt}from"node:fs";import{join as UEe}from"node:path";function KTt(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(Bd)}),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(Bd)}),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(Bd)}),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(Bd)}),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=jE(n,t.body,rfe);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()&&(QSe(t.params.sessionId),JSe()),C0(t.params.sessionId);return}Pl(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&Gd(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:Zde},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=jE(n,t.body,nfe);if(!i.ok)return;qL(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:Zde},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=jE(n,t.body,Yde);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?LEe(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{tSe({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=UE(f);p.design_direction_selected=!0,p.design_direction_selected_at=bn(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,r1(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?LEe(c):"";if(c&&u)try{let{uploads:l}=nSe({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}}BL(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(Bd)}),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(()=>(Xc(),_ye));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(()=>(Xc(),_ye));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)&&jTt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=UL(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"){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=LEe(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=Us(i,s).filter(u=>u.status==="pending"||u.status==="fixing"||u.status==="addressed"),a=!1;if(o.length===0)try{V5n(i,s),a=!0,Fg(`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}Pl(t.params.sessionId,{pending_decision:{decision:"advance",feedback:"",annotations:{},submitted_at:new Date().toISOString()}}),r.intent_slug&&Gd(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 LEe(e){let t=UEe(pe(e),"intent.md");if(!VTt(t))return"";try{let{data:n}=re(WTt(t,"utf8"));return n.active_stage||""}catch{return""}}function V5n(e,t){let n=pe(e),r=UEe(n,"stages",t,"units");if(!VTt(r))return;let i=z5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=UEe(r,s);try{let{data:a}=re(WTt(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=jd(n,c),f=!0),d&&De(o,"reviews",u),f&&De(o,"approvals",l)}catch{}}}var ZTt=v(()=>{"use strict";bT();xY();rx();R1();Yf();Xc();ze();Jh();sEe();Hg();HTt();Av();YY()});var FEe=w((cyi,YTt)=>{"use strict";var{EventEmitter:W5n}=Z("node:events"),{inherits:K5n}=Z("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 Z5n=Z("node:util").inherits,JTt=Z("node:stream").Readable;function jEe(e){JTt.call(this,e)}Z5n(jEe,JTt);jEe.prototype._read=function(e){};XTt.exports=jEe});var JY=w((lyi,$Tt)=>{"use strict";$Tt.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 rvt=w((dyi,nvt)=>{"use strict";var tvt=Z("node:events").EventEmitter,Y5n=Z("node:util").inherits,evt=JY(),J5n=FEe(),X5n=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 -`),Q5n=/\r\n/g,$5n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function ax(e){tvt.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=evt(e,"maxHeaderPairs",2e3),this.maxHeaderSize=evt(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new J5n(X5n),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()})}Y5n(ax,tvt);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(Q5n),t=e.length,n,r;for(var i=0;i{"use strict";var HEe=Z("node:stream").Writable,e6n=Z("node:util").inherits,t6n=FEe(),ivt=QTt(),n6n=rvt(),r6n=45,i6n=Buffer.from("-"),s6n=Buffer.from(`\r -`),o6n=function(){};function ip(e){if(!(this instanceof ip))return new ip(e);if(HEe.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 n6n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}e6n(ip,HEe);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 HEe.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 ivt(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 ovt=new TextDecoder("utf-8"),avt=new Map([["utf-8",ovt],["utf8",ovt]]);function a6n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return O1.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 O1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return O1.utf16le;case"base64":return O1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return O1.other.bind(e)}}var O1={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)),avt.has(BEe.toString()))try{return avt.get(BEe).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function c6n(e,t,n){return e&&a6n(n)(e,t)}cvt.exports=c6n});var zEe=w((pyi,pvt)=>{"use strict";var QY=XY(),uvt=/%[a-fA-F0-9][a-fA-F0-9]/g,u6n={"%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 lvt(e){return u6n[e]}var $Y=0,dvt=1,GEe=2,fvt=3;function l6n(e){let t=[],n=$Y,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";hvt.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 Evt=w((myi,Svt)=>{"use strict";var{Readable:yvt}=Z("node:stream"),{inherits:d6n}=Z("node:util"),f6n=qEe(),gvt=zEe(),p6n=XY(),h6n=mvt(),Ov=JY(),m6n=/^boundary$/i,g6n=/^form-data$/i,y6n=/^charset$/i,S6n=/^filename$/i,E6n=/^name$/i;e5.detect=/^multipart\/form-data/i;function e5(e,t){let n,r,i=this,s,o=t.limits,a=t.isPartAFile||((N,P,C)=>P==="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;ng)return i.parser.removeListener("part",N),i.parser.on("part",cx),e.hitPartsLimit=!0,e.emit("partsLimit"),cx(P);if(R){let C=R;C.emit("end"),C.removeAllListeners("end")}P.on("header",function(C){let F,V,K,$,B,X,G=0;if(C["content-type"]&&(K=gvt(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,P.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(_===y)return e.hitFieldsLimit||(e.hitFieldsLimit=!0,e.emit("fieldsLimit")),cx(P);++_,++T;let U="",D=!1;R=P,M=function(H){if((G+=H.length)>p){let j=p-(G-H.length);U+=H.toString("binary",0,j),D=!0,P.removeAllListeners("data")}else U+=H.toString("binary")},q=function(){R=void 0,U.length&&(U=p6n(U,"binary",$)),e.emit("field",V,U,!1,D,B,F),--T,f()}}P._readableState.sync=!1,P.on("data",M),P.on("end",q)}).on("error",function(C){A&&A.emit("error",C)})}).on("error",function(N){e.emit("error",N)}).on("finish",function(){x=!0,f()})}e5.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};e5.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 VEe(e){yvt.call(this,e),this.bytesRead=0,this.truncated=!1}d6n(VEe,yvt);VEe.prototype._read=function(e){};Svt.exports=e5});var _vt=w((gyi,bvt)=>{"use strict";var b6n=/\+/g,_6n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 WEe(){this.buffer=void 0}WEe.prototype.write=function(e){e=e.replace(b6n," ");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 T6n=_vt(),ux=XY(),KEe=JY(),v6n=/^charset$/i;t5.detect=/^application\/x-www-form-urlencoded/i;function t5(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=KEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=KEe(n,"fieldNameSize",100),this.fieldsLimit=KEe(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"))};Tvt.exports=t5});var wvt=w((Syi,N1)=>{"use strict";var ZEe=Z("node:stream").Writable,{inherits:A6n}=Z("node:util"),R6n=qEe(),Avt=Evt(),Rvt=vvt(),w6n=zEe();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},ZEe.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}A6n(qg,ZEe);qg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}ZEe.prototype.emit.apply(this,arguments)};qg.prototype.getParserByHeaders=function(e){let t=w6n(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(Avt.detect.test(t[0]))return new Avt(this,n);if(Rvt.detect.test(t[0]))return new Rvt(this,n);throw new Error("Unsupported Content-Type.")};qg.prototype._write=function(e,t,n){this._parser.write(e,n)};N1.exports=qg;N1.exports.default=qg;N1.exports.Busboy=qg;N1.exports.Dicer=R6n});var xvt=w((Eyi,Ivt)=>{"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"],Nv=Math.random;function kvt(){return Bg[255*Nv()|0]+Bg[255*Nv()|0]+Bg[255*Nv()|0]+Bg[255*Nv()|0]+Bg[255*Nv()|0]+Bg[255*Nv()|0]+Bg[255*Nv()|0]}Ivt.exports.generateId=(function(){let t=0,n=kvt();return function(){return t===255?(n=kvt())+Bg[t=0]:n+Bg[++t]}})()});var Nvt=w((byi,Ovt)=>{"use strict";Ovt.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 Mvt=w((_yi,P1)=>{"use strict";var Pvt=Object.getPrototypeOf({});function Cvt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function YEe(e){function t(g){return g!=="constructor"&&g!=="prototype"&&g!=="__proto__"}function n(g){let E=0,S=g.length,b=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),b=Array.isArray(g);return d(E)?E:u(g)?S&&b?f(g,E):S!==b?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 k6n=wvt(),I6n=Z("node:os"),x6n=UC(),{createWriteStream:O6n}=Z("node:fs"),{unlink:N6n}=Z("node:fs/promises"),Dvt=Z("node:path"),{generateId:P6n}=xvt(),Gg=oW(),C6n=Nvt(),M6n=Mvt()({all:!0}),{PassThrough:D6n,Readable:L6n}=Z("node:stream"),{pipeline:U6n}=Z("node:stream/promises"),F6n=bue(),QEe=Symbol("multipart"),n5=Symbol("multipartHandler"),C1=Symbol("savedRequestFilesResult"),Lvt=Gg("FST_PARTS_LIMIT","reach parts limit",413),Uvt=Gg("FST_FILES_LIMIT","reach files limit",413),Fvt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),JEe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),XEe=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),jvt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),Hvt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),qvt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),j6n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function H6n(e,t,n){e[QEe]=!0,n()}function q6n(e){try{return new k6n(e)}catch(t){let n=new D6n;return process.nextTick(function(){n.emit("error",t)}),n}}function $Ee(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[QEe]}function o(p={}){if(!this.isMultipart())throw new jvt;this.log.debug("starting multipart parsing");let h=[],m=null,y=C=>{m?(m(C),m=null):h.push(C)},g=C=>{if(h.length>0){let F=h[0];h=h.slice(1),C(F)}else m=C},E=()=>new Promise((C,F)=>{g(V=>{V instanceof Error?V.message==="Unexpected end of multipart data"?C(null):F(V):C(V)})}),S={},b=null,_=null,T=this.raw,A=M6n({headers:T.headers},t,p);this.log.trace({busboyOptions:A},"Providing options to busboy");let R=q6n(A);T.on("close",P),T.on("error",P),R.on("field",x).on("file",k).on("end",P).on("finish",P).on("close",P).on("error",P),R.on("partsLimit",function(){let C=new Lvt;N(C),process.nextTick(()=>P(C))}),R.on("filesLimit",function(){let C=new Uvt;N(C),process.nextTick(()=>P(C))}),R.on("fieldsLimit",function(){let C=new Fvt;N(C),process.nextTick(()=>P(C))}),T.pipe(R);function x(C,F,V,K,$,B){if(C in Object.prototype){N(new XEe);return}if(B.startsWith("application/json")){if(K){N(new Hvt);return}try{F=F6n.parse(F),B="application/json"}catch{N(new Hvt);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],y(X)}function k(C,F,V,K,$){if(C in Object.prototype){C6n(F).catch(()=>{}),N(new XEe);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 JEe,M.part=this,N(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")&&N(G)}),B&&F.on("limit",function(){let G=new JEe;G.part=X,N(G)}),S[C]===void 0?S[C]=X:Array.isArray(S[C])?S[C].push(X):S[C]=[S[C],X],_=F,y(X)}function N(C){b=C,_=null}function P(C){T.unpipe(R),(C||T.aborted)&&_&&(_.destroy(),_=null),y(C||b||null)}return E}async function a(p){if(this[C1])return this[C1];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||I6n.tmpdir();this.tmpUploads=[];let g=0;for await(let E of h){if(m=E.fields,!E.file)continue;let S=Dvt.join(y,P6n()+Dvt.extname(E.filename||"file"+g++)),b=O6n(S);try{this.tmpUploads.push(S),await U6n(E.file,b),this.savedRequestFiles.push({...E,filepath:S})}catch(_){throw b.destroy(),await this.cleanRequestFiles(),this.log.error({err:_},"save request file"),_}}return this[C1]={files:this.savedRequestFiles,values:m},this[C1]}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"}})}M1.exports=x6n($Ee,{fastify:"5.x",name:"@fastify/multipart"});M1.exports.default=$Ee;M1.exports.fastifyMultipart=$Ee;M1.exports.ajvFilePlugin=B6n});import{mkdirSync as G6n}from"node:fs";import{open as z6n}from"node:fs/promises";import{dirname as V6n,join as W6n}from"node:path";function U1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function zvt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function L1(e){return Buffer.byteLength(e,"utf-8")}function ebe(e,t){if(L1(e)<=t)return e;let n="...[truncated]",r=L1(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 X6n(e){let t=(s,o)=>s==null?null:ebe(s,o),n={...e,path:ebe(e.path,Z6n),claimed_author_id:t(e.claimed_author_id,Gvt),human_author_id:t(e.human_author_id,Gvt),rationale:t(e.rationale,K6n),dirs_created:(e.dirs_created??[]).slice(0,Y6n).map(s=>ebe(s,J6n))},r=JSON.stringify(n),i=L1(r);return i>r5?{ok:!1,reason:"record_too_large",bytes:i,cap:r5}:{ok:!0,record:n,line:r}}function Q6n(e){return W6n(e,"write-audit.jsonl")}async function $6n(e,t){let n=D1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});D1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=D1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{D1.get(e)===s&&D1.delete(e)})})}}async function Vvt(e,t){try{G6n(V6n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return $6n(e,async()=>{let n=null;try{return n=await z6n(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 F1(e,t){let n=X6n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=Q6n(e);return Vvt(r,n.line)}async function Wvt(e,t){return L1(t)>r5?{ok:!1,reason:`record_too_large (bytes=${L1(t)}, cap=${r5})`}:Vvt(e,t)}var r5,K6n,Gvt,Z6n,Y6n,J6n,D1,i5=v(()=>{"use strict";r5=16*1024,K6n=4096,Gvt=128,Z6n=1024,Y6n=16,J6n=512;D1=new Map});import{join as e8n}from"node:path";function tbe(e){return e8n(e,"action-log.jsonl")}async function Pv(e,t,n){let r=tbe(e),i=JSON.stringify(n);return Wvt(r,i)}var s5=v(()=>{"use strict";i5()});import{createHash as t8n}from"node:crypto";import{createWriteStream as n8n,existsSync as rbe,readFileSync as r8n,unlinkSync as tAt}from"node:fs";import{join as j1,resolve as Kvt}from"node:path";function i8n(e){return!(!e||e==="application/octet-stream")}function Yvt(e){return typeof e!="string"?!1:sbe.test(e)}function s8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function o8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function Jvt(e){return ibe.has(s8n(e))}function nbe(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=Zvt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?Zvt:n}return t>o5?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(o5)}),o5):Math.min(t,o5)}function Xvt(e,t){try{let n=j1(pe(e),"stages",t,"state.json");if(!rbe(n))return!1;let r=r8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function Qvt(e){return o1(pe(e))}function $vt(e){return s1(pe(e))}async function eAt(e,t,n){let r=j1(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=t8n("sha256"),s=0,o=n8n(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{tAt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function rAt(e){await e.register(async t=>{await t.register(nAt.default,{limits:{fileSize:nbe()+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(!Da(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(Qvt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if($vt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=nbe(),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(!Yvt(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:sbe.source});return}let d=Jvt(l.filename),f=Jvt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(ibe).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(ibe)});return}let p=o8n(l.mimetype);if(!i8n(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(Xvt(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=nv(`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=pe(i),S=j1(E,y),b=S.substring(0,S.lastIndexOf("/")),_=Kvt(S),T=Kvt(j1(E,g));if(!_.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let A=rbe(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 eAt(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 N=fv(E,b,R,S);if(!N.ok){U0(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=CE(E,o),C=U1(P,1),F=new Date().toISOString();await Pv(E,P,{entry_type:"human_write",path:y,sha:x,author_class:"human-via-mcp",timestamp:F,claimed_author_id:u,human_author_id:u,entry_id:C,tick_counter:P,tick_scope:"stage"}),await F1(E,{timestamp:F,entry_id:C,path:y,sha:x,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: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(!Da(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(Qvt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if($vt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=nbe(),o,a=null,c,u;try{let k=n.parts();for await(let N of k)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(k){let N=k.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(!Yvt(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:sbe.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(Xvt(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=j1(d,f),h=p.substring(0,p.lastIndexOf("/"));if(rbe(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let y=null,g,E;try{let k=await eAt(u,d,s);y=k.tmpPath,g=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,y,p);if(!S.ok){U0(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 b=a===null,_;try{_=b?a1(d):CE(d,a)}catch(k){if(k instanceof qd){try{tAt(p)}catch{}r.status(500).send({error:"tick_persist_failed",code:"tick_persist_failed",message:k.message});return}throw k}let T=b?"intent":"stage",A=U1(_,1),R=new Date().toISOString();await Pv(d,_,{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:_,tick_scope:T}),await F1(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:_,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 nAt,Zvt,o5,ibe,sbe,iAt=v(()=>{"use strict";nAt=Se(Bvt(),1);s5();A0();i5();M9();ze();To();Hg();Av();Zvt=50*1024*1024,o5=50*1024*1024,ibe=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);sbe=/^[\w][\w\-.@ ]{0,127}$/});function sAt(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=Yh(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(!Yh(c,i).ok){n.close(4401,"unauthorized");return}}let s=$t(i);if(!s){n.close(4404,"session not found");return}if(!zu.has(i)&&zu.size>=x1){HE(`upgrade REJECT session=${i} reason=ws_session_cap size=${zu.size} cap=${x1}`),n.close(1013,"session cap reached");return}zu.set(i,n),HE(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=z_t(a.intent_slug,c=>{Qh(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!GTt(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");zTt(i,u)}),n.on("close",()=>{zu.get(i)===n&&zu.delete(i),o&&(o(),o=null)}),n.on("error",()=>{zu.get(i)===n&&zu.delete(i),o&&(o(),o=null)})})})}var oAt=v(()=>{"use strict";rx();Xc();Jh();YY()});import{randomUUID as a8n}from"node:crypto";function c8n(){return obe}function u8n(e){if(!e)return null;let t=gf.allowedOrigins.filter(r=>r&&r!=="*");return(t.length>0?t:[gf.siteUrl]).includes(e)?e:null}async function l8n(){let e=(0,pAt.default)({logger:!1,bodyLimit:pD,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 a8n()},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(lAt.default,{origin:(t,n)=>{n(null,u8n(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(dAt.default,{max:t,timeWindow:n})}return await e.register(fAt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=iEe((t.url??"/").split("?")[0]);if(!i||!b1(i)||n.statusCode>=400)return r;try{return await x_t(t,n,r)}catch{return r}}),k_t(e,c8n),l_t(e),KTt(e),B_t(e),U_t(e),await rAt(e),m_t(e),E_t(e),R_t(e),sAt(e),e}function uAt(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 GE(){if(BE&&qE!==null)return qE;Bi()&&gf.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."),BE=await l8n();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 BE.listen({host:t,port:0});BE.server.maxConnections=cAt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(qE=Number.parseInt(r[2],10),uAt(r[1].replace(/^\[|\]$/g,""))),qE===null){let i=BE.server.address();i&&typeof i=="object"&&(qE=i.port,uAt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${qE} (maxConnections=${cAt}, maxWsSessions=${x1})`),obe=!0,qE}async function hAt(){if(BE)try{for(let e of Array.from(zu.keys()))try{Iv(e,"shutdown")}catch{}await BE.close()}finally{BE=null,qE=null,obe=!1}}var lAt,dAt,fAt,pAt,aAt,cAt,BE,qE,obe,a5=v(()=>{"use strict";lAt=Se(C8e(),1),dAt=Se(K8e(),1),fAt=Se(A7e(),1),pAt=Se($ct(),1);bT();Ci();g_t();b_t();eEe();w_t();I_t();O_t();F_t();G_t();ZTt();iAt();YY();oAt();Jh();aAt=256,cAt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return aAt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?aAt:Math.max(t,1)})(),BE=null,qE=null,obe=!1});import{execFileSync as d8n}from"node:child_process";import{cpSync as mAt,existsSync as ube,mkdirSync as abe}from"node:fs";import{homedir as gAt}from"node:os";import{join as lbe}from"node:path";function h8n(){return lbe(gAt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function m8n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of f8n)ube(lbe(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function g8n(){if(sd==="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=h8n();if(ube(t))try{return abe(e,{recursive:!0}),mAt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=lbe(gAt(),".claude","plugins","npm-cache");try{return abe(n,{recursive:!0}),d8n("npm",["install",`haiku-method@${sd}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),ube(t)?(abe(e,{recursive:!0}),mAt(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 yAt(e){let t=Date.now();if(t-cbe{"use strict";Ci();ih();l_();f8n=["studios","schemas",".claude-plugin/plugin.json"],p8n=5e3,cbe=0});var Rt=v(()=>{"use strict"});var y8n,S8n,EAt,bAt=v(()=>{"use strict";Et();mt();Rt();y8n=new Te({autoEscape:!1,useWith:!0}),S8n=se("@canon:feedback/changes_requested"),EAt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return y8n.renderString(S8n,{slug:e,message:r,annotations:n})}});var E8n,b8n,_At,TAt=v(()=>{"use strict";Et();mt();Rt();E8n=new Te({autoEscape:!1,useWith:!0}),b8n=se("@canon:feedback/close_feedback"),_At=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return E8n.renderString(b8n,{slug:e,stage:n,fbId:r})}});var _8n,T8n,vAt,AAt=v(()=>{"use strict";Et();ts();mt();Rt();_8n=new Te({autoEscape:!1,useWith:!0}),T8n=se("@canon:feedback/feedback_question"),vAt=e=>{let t=e.action;return _8n.renderString(T8n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:DI(e.dir)==="autopilot"})}});var v8n,A8n,RAt,wAt=v(()=>{"use strict";Et();mt();Rt();v8n=new Te({autoEscape:!1,useWith:!0}),A8n=se("@canon:feedback/fix_quality_gates"),RAt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return v8n.renderString(A8n,{slug:e,stageHint:r,message:i})}});import{existsSync as c5}from"node:fs";import{join as R8n}from"node:path";var kAt,w8n,k8n,IAt,xAt=v(()=>{"use strict";Et();Sf();ze();Kn();_l();ts();mt();Lh();Rt();kAt=new Te({autoEscape:!1,useWith:!0}),w8n=se("@canon:feedback/intent_completion_fix"),k8n=se("@canon:feedback/intent_completion_fix","subagent.eta.md"),IAt=({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=OD(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:y,branch:g})=>{let E=R8n(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||b.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,N=x&&c5(x)?Tl(x,`Fix-hat mandate: ${R}`):"",P=x&&c5(x)?OI(xI(x)):"",C=c5(E)?Tl(E,`Feedback: ${f} \u2014 ${h}`):"",F=c5(E)?NI(E):"",V=kAt.renderString(k8n,{hat:R,fbId:f,fbNum:S,fbTitle:h,fixBolt:m,fixMaxBolts:i,slug:e,fbWorktree:y,fbBranch:g,hatMandateInline:N,hatInterpBlock:P,fbInline:C,priorRejectBlock:F,gitRepo:Re(),isLast:k}),K=x?Du({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&&_)try{i4({unit:`fix-${f}`,hat:R,bolt:m,intent:e},_)}catch{}_=$,A===0&&(T=$)}return{fbId:f,fbTitle:h,fixBolt:m,warnings:b.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 kAt.renderString(w8n,{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 u5}from"node:fs";import{join as l5}from"node:path";var OAt,I8n,x8n,NAt,PAt=v(()=>{"use strict";Et();Ci();Sf();ze();Kn();_l();ns();ts();mt();Lh();Rt();OAt=new Te({autoEscape:!1,useWith:!0}),I8n=se("@canon:feedback/review_fix"),x8n=se("@canon:feedback/review_fix","subagent.eta.md"),NAt=({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=Pu(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Lf(l5(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:g,feedback_file:E,feedback_title:S,bolt:b,worktree:_,branch:T})=>{let A=l5(u,E),R=Number.parseInt(g.replace(/^FB-/i,""),10)||0,x=[],k=null,N="";for(let P=i.length-1;P>=0;P--){let C=i[P],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?l5(p,"studios",f,"stages",r,"hats",`${C}.md`):null,K=P===i.length-1,$=h?Tl(h,`Stage scope: ${r}`):"",B=V&&u5(V)?Tl(V,`Hat mandate: ${C}`):"",X=V&&u5(V)?OI(xI(V)):"",G=u5(A)?Tl(A,`Feedback: ${g} \u2014 ${S}`):"",M=u5(A)?NI(A):"",q=OAt.renderString(x8n,{hat:C,fbId:g,fbNum:R,fbTitle:S,fixBolt:b,fixMaxBolts:s,fixStage:r,slug:e,fbWorktree:_,fbBranch:T,stageBaseInline:$,hatMandateInline:B,hatInterpBlock:X,fbInline:G,priorRejectBlock:M,gitRepo:Re(),isLast:K}),U=l5(nn(),"studios",t,"stages",r,"hats",`${C}.md`),D=Du({mandatePath:U,studio:t,stage:r}),H=Ti({unit:`fix-${g}`,hat:C,bolt:b,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{i4({unit:`fix-${g}`,hat:C,bolt:b,intent:e,stage:r},k)}catch{}k=H,P===0&&(N=H)}return{fbId:g,fbTitle:S,fixBolt:b,warnings:x.join(` -`),firstHatBlock:N}}),y=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(I8n,{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:y})}});import{existsSync as CAt,readdirSync as MAt,readFileSync as DAt}from"node:fs";import{join as lx}from"node:path";function P8n(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=CAt(f)?MAt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=DAt(lx(f,p[0]),"utf8");o=(0,dbe.default)(h).data.model}}catch{}}let a=n?Pu(r,n)?.[i]:void 0,c=n?$i(r,n):void 0,u=xd(r),l=uE({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var dbe,O8n,N8n,LAt,UAt=v(()=>{"use strict";Et();dbe=Se(Xt(),1);Ci();lE();ze();Kn();Dpe();ts();mt();Lh();Rt();O8n=new Te({autoEscape:!1,useWith:!0}),N8n=se("@canon:feedback/start_feedback_hat");LAt=({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(!CAt(a))return!0;let c=MAt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=DAt(lx(a,c[0]),"utf8"),l=(0,dbe.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=P8n({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?dE(t,s.stage,s.hat):null,dispatch_block:a}});return O8n.renderString(N8n,{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 C8n,M8n,FAt,jAt=v(()=>{"use strict";Et();mt();Rt();C8n=new Te({autoEscape:!1,useWith:!0}),M8n=se("@canon:global/complete"),FAt=({action:e})=>C8n.renderString(M8n,{message:e.message??""})});var D8n,L8n,HAt,qAt=v(()=>{"use strict";Et();mt();Rt();D8n=new Te({autoEscape:!1,useWith:!0}),L8n=se("@canon:global/error"),HAt=({action:e})=>D8n.renderString(L8n,{message:e.message??""})});var U8n,F8n,BAt,GAt=v(()=>{"use strict";Et();mt();Rt();U8n=new Te({autoEscape:!1,useWith:!0}),F8n=se("@canon:global/loop_halted"),BAt=({action:e})=>{let t=e;return U8n.renderString(F8n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function q8n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var j8n,H8n,zAt,VAt=v(()=>{"use strict";Et();Kn();mt();Rt();j8n=new Te({autoEscape:!1,useWith:!0}),H8n=se("@canon:intent/reflection/record_reflection");zAt=({slug:e,studio:t})=>{let n=t?Object.entries(Kdt(t)).map(([r,i])=>({name:r,body:q8n(i)})):[];return j8n.renderString(H8n,{slug:e,dimensions:n})}});var B8n,G8n,WAt,KAt=v(()=>{"use strict";Et();mt();Rt();B8n=new Te({autoEscape:!1,useWith:!0}),G8n=se("@canon:intent/repair/external_review_requested"),WAt=({action:e})=>B8n.renderString(G8n,{message:e.message??""})});var z8n,V8n,ZAt,YAt=v(()=>{"use strict";Et();mt();Rt();z8n=new Te({autoEscape:!1,useWith:!0}),V8n=se("@canon:intent/repair/revise_unit_specs"),ZAt=({action:e})=>z8n.renderString(V8n,{message:e.message??""})});var W8n,K8n,JAt,XAt=v(()=>{"use strict";Et();mt();Rt();W8n=new Te({autoEscape:!1,useWith:!0}),K8n=se("@canon:intent/repair/safe_intent_repair"),JAt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return W8n.renderString(K8n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});function J8n(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 X8n(e,t,n){let r=Z8n[n],i="",s;if(r){let c=d5.renderString(r,{slug:e}).trim();i=`**Read** \`${yE({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=Du({mandatePath:mg(t)[n],studio:t}))}let o=i?d5.renderString(Y8n,{slug:e,role:n,mandateRef:i,doctrineRef:CT.has(n)?Es("runtime-verification"):"",prInteraction:kpe.has(n),existingFeedback:PI(e,""),decisions:CI(e)}):J8n(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 Z8n,d5,QAt,Y8n,$At,eRt=v(()=>{"use strict";Et();Kn();_l();ts();mt();Lh();Rt();Z8n={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")},d5=new Te({autoEscape:!1,useWith:!0}),QAt=se("@canon:intent/review/intent_review"),Y8n=se("@canon:intent/review/intent_review","subagent.eta.md");$At=({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 d5.renderString(QAt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>X8n(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 d5.renderString(QAt,{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 Q8n,$8n,tRt,nRt=v(()=>{"use strict";Et();mt();Rt();Q8n=new Te({autoEscape:!1,useWith:!0}),$8n=se("@canon:intent/seal/intent_approved"),tRt=({slug:e})=>Q8n.renderString($8n,{slug:e})});var eJn,tJn,rRt,iRt=v(()=>{"use strict";Et();vr();ze();mt();Rt();eJn=new Te({autoEscape:!1,useWith:!0}),tJn=se("@canon:intent/seal/intent_complete"),rRt=({slug:e})=>{let t=Re(),n=t?pc():"";return eJn.renderString(tJn,{slug:e,gitMode:t,mainline:n})}});var nJn,rJn,sRt,oRt=v(()=>{"use strict";Et();ts();mt();Rt();nJn=new Te({autoEscape:!1,useWith:!0}),rJn=se("@canon:intent/seal/seal_intent"),sRt=({slug:e,dir:t})=>nJn.renderString(rJn,{slug:e,providerBlock:MI("seal_intent",t)})});var iJn,sJn,aRt,cRt=v(()=>{"use strict";Et();mt();Rt();iJn=new Te({autoEscape:!1,useWith:!0}),sJn=se("@canon:intent/setup/migrated"),aRt=({action:e})=>iJn.renderString(sJn,{message:e.message??""})});var oJn,aJn,uRt,lRt=v(()=>{"use strict";Et();mt();Rt();oJn=new Te({autoEscape:!1,useWith:!0}),aJn=se("@canon:intent/setup/select_studio"),uRt=({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 oJn.renderString(aJn,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as cJn,readFileSync as uJn}from"node:fs";import{join as lJn}from"node:path";function hJn(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=lJn(ar(e,t),"units",r);if(!cJn(i))return[];try{let{data:s}=(0,dRt.default)(uJn(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function mJn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=pJn[i],a="",c;if(o){let p=fbe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${yE({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=ID(n,r,i);p&&(c=Du({mandatePath:p,studio:n,stage:r}))}let u=r?s.flatMap(p=>hJn(t,r,p)).filter((p,h,m)=>m.indexOf(p)===h):[],l=CT.has(i)?Es("runtime-verification"):"",d=fbe.renderString(fJn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,existingFeedback:PI(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 dRt,fbe,dJn,fJn,pJn,fRt,pRt=v(()=>{"use strict";Et();dRt=Se(Xt(),1);ze();Kn();_l();ts();mt();Lh();Rt();fbe=new Te({autoEscape:!1,useWith:!0}),dJn=se("@canon:stage/approve/dispatch_approval"),fJn=se("@canon:stage/approve/dispatch_approval","subagent.eta.md"),pJn={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")};fRt=({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=>mJn({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 fbe.renderString(dJn,{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 gJn,yJn,hRt,mRt=v(()=>{"use strict";Et();mt();Rt();gJn=new Te({autoEscape:!1,useWith:!0}),yJn=se("@canon:stage/approve/dispatch_quality_gates"),hRt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return gJn.renderString(yJn,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var SJn,EJn,gRt,yRt=v(()=>{"use strict";Et();mt();Rt();SJn=new Te({autoEscape:!1,useWith:!0}),EJn=se("@canon:stage/complete/advance_phase"),gRt=({slug:e,action:t})=>{let n=t.to_phase;return SJn.renderString(EJn,{slug:e,toPhase:n})}});var bJn,_Jn,SRt,ERt=v(()=>{"use strict";Et();mt();Rt();bJn=new Te({autoEscape:!1,useWith:!0}),_Jn=se("@canon:stage/complete/advance_stage"),SRt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return bJn.renderString(_Jn,{slug:e,stage:n,nextStage:r})}});var TJn,vJn,bRt,_Rt=v(()=>{"use strict";Et();ts();mt();Rt();TJn=new Te({autoEscape:!1,useWith:!0}),vJn=se("@canon:stage/complete/complete_stage"),bRt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return TJn.renderString(vJn,{slug:e,stage:r,providerBlock:MI("complete_stage",n)})}});var AJn,RJn,TRt,vRt=v(()=>{"use strict";Et();mt();Rt();AJn=new Te({autoEscape:!1,useWith:!0}),RJn=se("@canon:stage/complete/record_observations"),TRt=({slug:e,action:t})=>{let n=t.stage||"";return AJn.renderString(RJn,{slug:e,stage:n})}});import{execFileSync as wJn,execSync as ARt}from"node:child_process";import{existsSync as bc,readdirSync as sp,readFileSync as f5,statSync as kJn}from"node:fs";import{join as Sr,resolve as IJn}from"node:path";function H1(e){if(!bc(e))return{};let t=f5(e,"utf8"),{data:n}=re(t);return n}function RRt(e,t,n){let r=nn();for(let i of[Sr(process.cwd(),".haiku","studios"),Sr(r,"studios")]){let s=Sr(i,n,"stages",t,"outputs");if(!bc(s))continue;let o=sp(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=f5(Sr(s,c),"utf8"),{data:l}=(0,pbe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=Sr(process.cwd(),p);p.endsWith("/")?(!bc(h)||sp(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):bc(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 p5(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=Xo(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=Xo(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=Xo(e,t,{title:o,body:s,origin:"user-chat",author:"user"});r.push(a.feedback_id)}return r.length>0&&It(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:()=>D3(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(Sr(e,"stages",t,"outputs",`${a.name}.md`)),l=u?` | **Template:** \`${u}\``:"";o.push(`- ${c}${l}`)}}return o.join(` -`)}function wRt(e,t,n){let r=nn();for(let i of[Sr(process.cwd(),".haiku","studios"),Sr(r,"studios")]){let s=Sr(i,n,"stages",t,"discovery");if(!bc(s))continue;let o=sp(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=f5(Sr(s,c),"utf8"),{data:l}=(0,pbe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=Sr(process.cwd(),p);p.endsWith("/")?(!bc(h)||sp(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):bc(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(` `)} -The elaboration phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function kRt(e,t){let n=Sr(e,"stages",t,"units");if(!bc(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(!xJn.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 WAt(e,t){let n=br(e,"stages",t,"units");if(!_c(n))return null;let r=op(n).filter(o=>o.endsWith(".md"));if(r.length===0)return null;let i=[],s=new Map;for(let o of r){if(!dJn.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 IRt(e,t){let n=Sr(e,"stages",t,"units");if(!bc(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=H1(Sr(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. @@ -1020,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 xRt(e){let t=Sr(e,"coverage-decisions.json");if(!bc(t))return new Set;try{let n=JSON.parse(f5(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function NJn(e,t){let n=[];for(let r of OJn){let i=Sr(e,r);if(!bc(i))continue;let s=[""];for(;s.length>0;){let o=s.pop(),a=Sr(i,o),c;try{c=sp(a)}catch{continue}for(let u of c){let l=o?`${o}/${u}`:u,d=Sr(a,u);try{let f=kJn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function PJn(e){if(!bc(e))return[];let t=[];for(let n of sp(e)){if(!n.endsWith(".md"))continue;let i=H1(Sr(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function CJn(e){let t=new Set;if(!bc(e))return t;for(let n of sp(e)){if(!n.endsWith(".md"))continue;let r=H1(Sr(e,n)),i=r.inputs||r.refs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.add(s.trim())}return t}function ORt(e,t,n){if(n.length===0)return null;let r=Sr(e,"stages",t,"units"),i=CJn(r),s=xRt(Sr(e,"stages",t)),o=[],a=new Set;for(let u of n){let l=Sr(e,"stages",u);if(!bc(l))continue;let d=`stages/${u}`,f=PJn(Sr(l,"units")),p=NJn(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). @@ -1030,8 +1028,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 LJn(e){return!(!MJn.test(e)||DJn.test(e))}function UJn(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function FJn(e){return e.startsWith(".haiku/")}function jJn(e,t,n){if(t===""||t.length<2)return[];try{return wJn("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` -`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!FJn(i))}catch{return[]}}function NRt(e,t,n){if(t.length===0)return null;let r=[],i=new Set;for(let c of t){let u=Sr(e,"stages",c,"units");if(bc(u))for(let l of sp(u)){if(!l.endsWith(".md"))continue;let f=H1(Sr(u,l)).outputs||[];for(let p of f)typeof p!="string"||!LJn(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=xRt(Sr(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=UJn(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. +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=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. @@ -1041,119 +1039,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 PRt(e,t){let n=ve(),r=Sr(n,"intents",e),i=Sr(r,"intent.md"),s;try{s=ARt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=H1(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=Sr(r,"stages",t,"units");if(bc(c))for(let p of sp(c).filter(h=>h.startsWith("unit-")&&h.endsWith(".md")))a.push(...o(Sr(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";pbe=Se(Xt(),1);Ci();ze();Kn();ts();ns();xJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;OJn=["artifacts","outputs","knowledge","discovery"];MJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,DJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as zg,mkdirSync as HJn,readdirSync as qJn,readFileSync as DRt,renameSync as BJn}from"node:fs";import{dirname as GJn,join as $c}from"node:path";function CRt(e){if(!zg(e))return{};let t=DRt(e,"utf8"),{data:n}=re(t);return n}function hbe(e,t,n,r){let i=Wdt(El(e,t),$c(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[VJn,"",...o].join(` -`).trimEnd()}function MRt(){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(iXn,{preamble:WJn,skillLines:t})}function sXn(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,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 X=["### Completed Units (knowledge \u2014 read-only)",""];for(let G of d){let M=$c(i,"stages",s,"units",`${G}.md`);if(!zg(M)){X.push(`- **${G}** \u2014 _(file missing)_`);continue}let q=CRt(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)}g.push(X.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 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(X=>`- \`${X}\``).join(` +${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).`),g.push(Es("workflow-contracts-elaborate"));let B=hbe(n,s,i,t);return B&&g.push(B),g.push(fx.renderString(zJn,{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(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){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(G=>`- \`${G}\``).join(` -`)}`),h.length>0&&g.push(`### Pending Feedback (MUST address \u2014 READ EACH FILE IN FULL) +${d.map(B=>`- \`${B}\``).join(` +`)}`),h.length>0&&y.push(`### Pending Feedback (MUST address \u2014 READ EACH FILE IN FULL) -${h.map(G=>`- **${G.feedback_id}** \u2014 ${G.title} - - file: \`${G.file}\` - - origin: ${G.origin} \xB7 author: ${G.author}`).join(` +${h.map(B=>`- **${B.feedback_id}** \u2014 ${B.title} + - file: \`${B.file}\` + - 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 B=hbe(n,s,i,t);B&&g.push(B);let X=MRt();return X&&g.push(X),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 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. 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}`),Cfe(n,s,"ELABORATION")){let B=kr({resolveBody:()=>L3(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}`),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 -${B}`)}g.push(Es("workflow-contracts-elaborate"));let E=MI("elaborate",i);E&&g.push(E);let S=hbe(n,s,i,t);S&&g.push(S);let b=wn(zg($c(i,"intent.md"))?CRt($c(i,"intent.md")):{},n),_=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let B=o.data.inputs,X=Fpe(B,b),G=F3(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;_.push(`- **${U.stage}/${U.artifactName}** (${U.kind}) \u2014 \`${D}\``)}}q.length>0&&g.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: -${q.map(U=>`- **${U.stage}/${U.artifactName}** (${U.kind}) \u2014 expected at \`${U.resolvedPath}\``).join(` +${V.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 A=[];{let B=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(_.length>0||A.length>0){let B=[KJn];_.length>0&&(B.push("","### Declared Inputs (from STAGE.md)"),B.push("",..._)),A.length>0&&B.push("",ZJn,"",...A,"",YJn),g.push(B.join(` -`)),T.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 R=[];{let q=E,Q=q.indexOf(s),B=Q>0?q.slice(0,Q):[];for(let F of B){let V=`.haiku/intents/${t}/stages/${F}`;R.push(`- **${F}**`,` - knowledge / discovery: \`${V}/knowledge/\``,` - unit specs: \`${V}/units/unit-*.md\``,` - stage outputs: any files under \`${V}/\` outside \`units/\` (\`.md\` reports, \`artifacts/\`)`,` - resolved feedback: \`${V}/feedback/*.md\``)}}if(_.length>0||R.length>0){let q=[xJn];_.length>0&&(q.push("","### Declared Inputs (from STAGE.md)"),q.push("",..._)),R.length>0&&q.push("",OJn,"",...R,"",PJn),y.push(q.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: -${T.map(X=>` - ${X}`).join(` +${T.map(Q=>` - ${Q}`).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=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($c(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(` -`);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 q=no(n,s).filter(Q=>Q.kind==="discovery"&&Q.scope==="project"&&Q.location).map(Q=>({name:Q.name,rel:Q.location.replace(/\{intent-slug\}/g,t)})).filter(Q=>Vg(tu(process.cwd(),Q.rel))).sort((Q,B)=>Q.name.localeCompare(B.name));if(q.length>0){let Q=q.map(B=>`- **${B.name}** \u2014 \`${B.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: -${X} +${Q} -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[...Nu()].reverse()){let G=$c(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=$c(G,M),U=DRt(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=$c(process.cwd(),j):j.startsWith("/")?W=j:W=$c(i,j)),R.push({name:M.replace(/\.md$/i,"").toLowerCase(),templatePath:q,outputPath:W})}}}let x=$c(i,"knowledge");for(let B of R){if(!B.outputPath||zg(B.outputPath))continue;let X=`${B.name.toUpperCase()}.md`,G=$c(x,X);if(G!==B.outputPath&&zg(G))try{HJn(GJn(B.outputPath),{recursive:!0}),BJn(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=$c(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) +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 q=new Set;for(let Q of[...Mu()].reverse()){let B=tu(Q,n,"stages",s,"discovery");if(Vg(B))for(let F of vJn(B).filter(V=>V.endsWith(".md"))){if(q.has(F))continue;q.add(F);let V=tu(B,F),U=ewt(V,"utf8"),{data:M}=re(U),H=M.location,j=typeof H=="string"?H.replace(/\{intent-slug\}/g,t):H,Y=null;typeof j=="string"&&j.length>0&&(j.startsWith(".haiku/")?Y=tu(process.cwd(),j):j.startsWith("/")?Y=j:Y=tu(i,j)),A.push({name:F.replace(/\.md$/i,"").toLowerCase(),templatePath:V,outputPath:Y})}}}let x=tu(i,"knowledge");for(let q of A){if(!q.outputPath||Vg(q.outputPath))continue;let Q=`${q.name.toUpperCase()}.md`,B=tu(x,Q);if(B!==q.outputPath&&Vg(B))try{TJn(AJn(q.outputPath),{recursive:!0}),RJn(B,q.outputPath),console.error(`[haiku] Relocated misplaced discovery artifact: '${B}' \u2192 '${q.outputPath}' (template '${q.name}' declares ${q.outputPath}). Clears the cursor re-emission wedge from pre-2026-05-13 engine versions.`)}catch(F){console.error(`[haiku] Could not relocate '${B}' to '${q.outputPath}': ${F instanceof Error?F.message:String(F)}. Discovery will continue to re-emit until the file is moved manually.`)}}let k=A.filter(q=>{if(q.outputPath)return!Vg(q.outputPath);let Q=tu(x,`${q.name.toUpperCase()}.md`);return!Vg(Q)});if(k.length>0){let q=k.map(H=>`\`${H.name}\``).join(", "),Q=k.length!==1?"s":"",B=kr({resolveBody:()=>Kh(t),toolName:"haiku_read_intent",toolArgs:{intent:t},intent:t,stage:s,kind:"intent-goal",name:"intent"}),F=kr({resolveBody:()=>Dh(n,s),toolName:"haiku_read_stage",toolArgs:{studio:n,stage:s},intent:t,stage:s,kind:"stage-scope",name:s}),V=`## Discovery Fan-Out (REQUIRED) -This stage produces ${k.length} discovery artifact${X}: ${B}. +This stage produces ${k.length} discovery artifact${Q}: ${q}. -${Es("workflow-contracts-announcement")} +${bs("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). -${LI(k.length,"discovery subagents",{forceForeground:c})} +${FI(k.length,"discovery subagents",{forceForeground:c})} -`;for(let H of k){let j=hpe(t,s,H.name),W=j?H.outputPath?H.outputPath.startsWith(i)?$c(j,".haiku","intents",t,H.outputPath.slice(i.length+1)):H.outputPath.startsWith(process.cwd())?$c(j,H.outputPath.slice(process.cwd().length+1)):H.outputPath:$c(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}),ie=fx.renderString(rXn,{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=Du({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:ie,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.':"",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) +`}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}${D}`,g.push(q),y||g.push(Mf("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}${M}`,y.push(V),g||y.push(Lf("discovery",{slug:t,stage:s})),y.join(` -`)}let N=dx(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);N&&g.push(N),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 P=o?.data?.hats||[];(s.includes("design")||P.some(B=>B.includes("designer")||B.includes("design"))||o?.body?.includes("pick_design_direction"))&&g.push(JJn),g.push(fx.renderString(XJn,{collaborative:u==="collaborative"}));let F=MRt();F&&g.push(F);let V=u==="collaborative"?QJn:$Jn,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(eXn,{slug:t,stage:s});return g.push(`${tXn} +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} -${V}${K} +${G}${W} -${$}`),y||g.push(Mf("decompose",{slug:t,stage:s})),g.join(` +${$}`),g||y.push(Lf("decompose",{slug:t,stage:s})),y.join(` -`)}var fx,zJn,VJn,WJn,KJn,ZJn,YJn,JJn,XJn,QJn,$Jn,eXn,tXn,nXn,rXn,iXn,LRt,URt=v(()=>{"use strict";Et();vr();Sf();ze();Kn();ns();h5();ts();mt();Lh();Rt();fx=new Te({autoEscape:!1,useWith:!0}),zJn=se("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),VJn=se("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),WJn=se("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),KJn=se("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),ZJn=se("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),YJn=se("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),JJn=se("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),XJn=se("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),QJn=se("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),$Jn=se("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),eXn=se("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),tXn=se("@canon:stage/elaborate/decompose","blocks/scope-header.md"),nXn=se("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),rXn=se("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),iXn=se("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");LRt=e=>{let t=e.action.prompt_file;return t?fx.renderString(nXn,{promptFile:t}):sXn(e)}});import{join as oXn}from"node:path";var FRt,aXn,cXn,jRt,HRt=v(()=>{"use strict";Et();ze();Kn();ts();mt();Rt();FRt=new Te({autoEscape:!1,useWith:!0}),aXn=se("@canon:stage/elaborate/decompose_review"),cXn=se("@canon:stage/elaborate/decompose_review","subagent.eta.md"),jRt=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=oXn(e.dir,"stages",n,"elaboration.md"),u=Mf("verify_decompose",{slug:r,stage:n}),l=FRt.renderString(cXn,{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 FRt.renderString(aXn,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var qRt,uXn,lXn,mbe,BRt=v(()=>{"use strict";Et();Kn();ts();mt();Rt();qRt=new Te({autoEscape:!1,useWith:!0}),uXn=se("@canon:stage/elaborate/discovery_required"),lXn=se("@canon:stage/elaborate/discovery_required","subagent.eta.md"),mbe=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(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:()=>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=qRt.renderString(lXn,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:g}),S=Du({mandatePath:Pfe(n,i,l)??void 0,studio:n,stage:i});y=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:y}}),c=Mf("discovery",{slug:t,stage:i});return qRt.renderString(uXn,{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 dXn,fXn,GRt,zRt=v(()=>{"use strict";Et();ze();Kn();ts();mt();Rt();dXn=new Te({autoEscape:!1,useWith:!0}),fXn=se("@canon:stage/elaborate/elaborate"),GRt=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 dXn.renderString(fXn,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as pXn}from"node:path";var VRt,hXn,mXn,WRt,KRt=v(()=>{"use strict";Et();ze();Kn();ts();mt();Rt();VRt=new Te({autoEscape:!1,useWith:!0}),hXn=se("@canon:stage/elaborate/elaborate_review"),mXn=se("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),WRt=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?"":pXn(e.dir,"stages",o,"elaboration.md"),l=i?"":Mf("verify_conversation",{slug:r,stage:o}),d=VRt.renderString(mXn,{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 VRt.renderString(hXn,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function gXn(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 yXn(e){switch(e){case"conversation":return GRt;case"verify_conversation":return WRt;case"discovery":return mbe;case"decompose":return LRt;case"verify_decompose":return jRt}}function ZRt(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 YRt,JRt=v(()=>{"use strict";ts();Rt();URt();HRt();BRt();zRt();KRt();YRt=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(` +`)}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=mbe(f)??"";o.push(`### ${ZRt("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=gXn(t,d),p={...e,action:f,composedMode:!0},h=yXn(d.signal)(p)??"";o.push(`### ${ZRt(d.signal)} +${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 SXn,EXn,XRt,QRt=v(()=>{"use strict";Et();mt();Rt();SXn=new Te({autoEscape:!1,useWith:!0}),EXn=se("@canon:stage/error/blocked"),XRt=({action:e})=>{let t=e.blocked_units||[];return SXn.renderString(EXn,{blockedUnits:t})}});var bXn,_Xn,$Rt,ewt=v(()=>{"use strict";Et();mt();Rt();bXn=new Te({autoEscape:!1,useWith:!0}),_Xn=se("@canon:stage/error/coverage_review_required"),$Rt=({action:e})=>bXn.renderString(_Xn,{message:e.message??""})});var TXn,vXn,twt,nwt=v(()=>{"use strict";Et();mt();Rt();TXn=new Te({autoEscape:!1,useWith:!0}),vXn=se("@canon:stage/error/dag_cycle_detected"),twt=({action:e})=>TXn.renderString(vXn,{message:e.message??""})});var AXn,RXn,rwt,iwt=v(()=>{"use strict";Et();mt();Rt();AXn=new Te({autoEscape:!1,useWith:!0}),RXn=se("@canon:stage/error/discovery_missing"),rwt=({action:e})=>AXn.renderString(RXn,{message:e.message??""})});var wXn,kXn,swt,owt=v(()=>{"use strict";Et();mt();Rt();wXn=new Te({autoEscape:!1,useWith:!0}),kXn=se("@canon:stage/error/elaboration_insufficient"),swt=({action:e})=>wXn.renderString(kXn,{message:e.message??""})});var IXn,xXn,awt,cwt=v(()=>{"use strict";Et();ze();mt();Rt();IXn=new Te({autoEscape:!1,useWith:!0}),xXn=se("@canon:stage/error/escalate"),awt=({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 IXn.renderString(xXn,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var OXn,NXn,uwt,lwt=v(()=>{"use strict";Et();mt();Rt();OXn=new Te({autoEscape:!1,useWith:!0}),NXn=se("@canon:stage/error/gate_blocked"),uwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return OXn.renderString(NXn,{slug:e,message:n})}});var PXn,CXn,dwt,fwt=v(()=>{"use strict";Et();mt();Rt();PXn=new Te({autoEscape:!1,useWith:!0}),CXn=se("@canon:stage/error/output_liveness_review_required"),dwt=({action:e})=>PXn.renderString(CXn,{message:e.message??""})});var MXn,DXn,pwt,hwt=v(()=>{"use strict";Et();mt();Rt();MXn=new Te({autoEscape:!1,useWith:!0}),DXn=se("@canon:stage/error/outputs_missing"),pwt=({action:e})=>MXn.renderString(DXn,{message:e.message??""})});var LXn,UXn,mwt,gwt=v(()=>{"use strict";Et();mt();Rt();LXn=new Te({autoEscape:!1,useWith:!0}),UXn=se("@canon:stage/error/save_wip"),mwt=({action:e})=>LXn.renderString(UXn,{message:e.message??""})});var FXn,jXn,ywt,Swt=v(()=>{"use strict";Et();mt();Rt();FXn=new Te({autoEscape:!1,useWith:!0}),jXn=se("@canon:stage/error/unit_inputs_missing"),ywt=({action:e})=>FXn.renderString(jXn,{message:e.message??""})});var HXn,qXn,Ewt,bwt=v(()=>{"use strict";Et();mt();Rt();HXn=new Te({autoEscape:!1,useWith:!0}),qXn=se("@canon:stage/error/unit_inputs_not_declared"),Ewt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return HXn.renderString(qXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var BXn,GXn,_wt,Twt=v(()=>{"use strict";Et();mt();Rt();BXn=new Te({autoEscape:!1,useWith:!0}),GXn=se("@canon:stage/error/unit_naming_invalid"),_wt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return BXn.renderString(GXn,{slug:e,message:n})}});var zXn,VXn,vwt,Awt=v(()=>{"use strict";Et();mt();Rt();zXn=new Te({autoEscape:!1,useWith:!0}),VXn=se("@canon:stage/error/unit_outputs_empty_iterations"),vwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return zXn.renderString(VXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var WXn,KXn,Rwt,wwt=v(()=>{"use strict";Et();mt();Rt();WXn=new Te({autoEscape:!1,useWith:!0}),KXn=se("@canon:stage/error/unresolved_dependencies"),Rwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return WXn.renderString(KXn,{slug:e,message:n})}});import{existsSync as gbe,readFileSync as kwt}from"node:fs";import{join as op,resolve as m5}from"node:path";var g5,ZXn,YXn,JXn,XXn,QXn,$Xn,e7n,t7n,Iwt,xwt=v(()=>{"use strict";Et();Ci();Sf();lE();ze();Kn();ns();h5();ts();mt();Lh();Rt();g5=new Te({autoEscape:!1,useWith:!0}),ZXn=se("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),YXn=se("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),JXn=se("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),XXn=se("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),QXn=se("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),$Xn=se("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),e7n=se("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),t7n=se("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),Iwt=({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(gbe(f)){let{data:B}=re(kwt(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 g=Pu(t,i)[o],E=g?.agent_type||"general-purpose",S;if(zo.modelSelection){let B=$i(t,i),X=xd(t),{model:G,source:M}=uE({unit:h,hat:g?.model,stage:B?.data?.default_model,studio:X?.data?.default_model});S=G,S&&console.error(`[haiku] resolved model: ${S} (source: ${M})`)}let b=[];{let B=m5(r);for(let X of p){let G=m5(r,X);!G.startsWith(`${B}/`)&&G!==B||gbe(op(r,X))&&b.push(X)}}let _=[];{let B=$i(t,i);if(B?.data?.inputs&&Array.isArray(B.data.inputs)){let X=B.data.inputs,M=F3(t,X,r,e).filter(U=>U.exists),q=new Set(p.map(U=>m5(r,U)));for(let U of M){if(q.has(m5(U.resolvedPath)))continue;let D=U.resolvedPath.startsWith(`${r}/`)?U.resolvedPath.slice(r.length+1):U.resolvedPath;_.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(),N=jft(e,i,o,a,c),P=[];if(o==="feedback-assessor"){let B=gbe(f)?re(kwt(f,"utf8")).data:{},X=B.closes||[],G=B.outputs||[],M=[],q=Us(e,i);for(let W of X){let ee=q.find(ie=>ie.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=Tl(x,`Unit spec: ${s}`),D=Npe(G.map(W=>({heading:`Unit output: ${W}`,path:op(R,W)}))),H=Npe(M.map(W=>({heading:`Feedback ${W.id}`,path:op(R,W.file)}))),j=g5.renderString(t7n,{slug:e,stage:i,unit:s,bolt:c,worktreePath:A,intentRoot:R,unitInline:U,outputsInline:D,feedbackInline:H});if(k.subagents.supported){let W=N?`${N} +`)}});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;P.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:E,model:S,promptBody:W,toolAttr:!0})),P.push(g5.renderString($Xn,{backgroundSpawn:k.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: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 P.join(` +${j}`);return N.join(` -`)}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)):"",$=g5.renderString(e7n,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:A,intentRoot:R,worktreeAndTimeoutsBlock:ZXn,requiredContextPreamble:YXn,stageInline:u?Tl(u,"Stage scope"):"",hatInline:l?Tl(l,`Hat: ${o}`):"",hatInterpBlock:K,unitInline:Tl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:l4(f),unitInputPaths:b.map(B=>op(R,B)),upstreamPaths:_.map(B=>({label:B.label,path:op(R,B.path)})),outputReqs:T||"",skillLines:V,skillsPreamble:JXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:XXn,subagentErrorRecovery:Es("subagent-error-recovery")});if(k.subagents.supported){let B=N?`${N} +`)}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} -${$}`:$;P.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:E,model:S,promptBody:B,toolAttr:!0})),P.push(g5.renderString(QXn,{backgroundSpawn:k.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: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 P.join(` +${$}`);return N.join(` -`)}});var n7n,r7n,Owt,Nwt=v(()=>{"use strict";Et();Wpe();ts();mt();Lh();Rt();n7n=new Te({autoEscape:!1,useWith:!0}),r7n=se("@canon:stage/execute/start_unit_hat"),Owt=({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 n7n.renderString(r7n,{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 i7n,s7n,Pwt,Cwt=v(()=>{"use strict";Et();mt();Rt();i7n=new Te({autoEscape:!1,useWith:!0}),s7n=se("@canon:stage/gate/user_gate"),Pwt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return i7n.renderString(s7n,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function u7n(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=c7n[i],a="",c;if(o){let d=ybe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${yE({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=ID(n,r,i);d&&(c=Du({mandatePath:d,studio:n,stage:r}))}let u=ybe.renderString(a7n,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:PI(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 ybe,o7n,a7n,c7n,Mwt,Dwt=v(()=>{"use strict";Et();Kn();_l();ts();mt();Rt();ybe=new Te({autoEscape:!1,useWith:!0}),o7n=se("@canon:stage/review/dispatch_review"),a7n=se("@canon:stage/review/dispatch_review","subagent.eta.md"),c7n={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")};Mwt=({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=>u7n({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 ybe.renderString(o7n,{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 Lwt,l7n,d7n,Uwt,Fwt=v(()=>{"use strict";Et();ts();mt();Rt();Lwt=new Te({autoEscape:!1,useWith:!0}),l7n=se("@canon:stage/review/write_brief"),d7n=se("@canon:stage/review/write_brief","subagent.eta.md"),Uwt=({slug:e,action:t})=>{let n=t.stage||"",r=Lwt.renderString(d7n,{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 Lwt.renderString(l7n,{slug:e,stage:n,dispatchBlock:i})}});var f7n,p7n,jwt,Hwt=v(()=>{"use strict";Et();Kn();mt();Rt();f7n=new Te({autoEscape:!1,useWith:!0}),p7n=se("@canon:stage/start_stage"),jwt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=$i(t,r),o=xd(t);return f7n.renderString(p7n,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var qwt,Bwt=v(()=>{"use strict";bAt();TAt();AAt();wAt();xAt();PAt();UAt();jAt();qAt();GAt();VAt();KAt();YAt();XAt();eRt();nRt();iRt();oRt();cRt();lRt();pRt();mRt();yRt();ERt();_Rt();vRt();JRt();QRt();ewt();nwt();iwt();owt();cwt();lwt();fwt();hwt();gwt();Swt();bwt();Twt();Awt();wwt();xwt();Nwt();Cwt();Dwt();Fwt();Hwt();qwt=new Map([["start_stage",jwt],["elaborate_loop",YRt],["start_unit",Iwt],["start_unit_hat",Owt],["dispatch_review",Mwt],["write_brief",Uwt],["dispatch_approval",fRt],["dispatch_quality_gates",hRt],["user_gate",Pwt],["advance_phase",gRt],["advance_stage",SRt],["complete_stage",bRt],["record_observations",TRt],["record_reflection",zAt],["blocked",XRt],["coverage_review_required",$Rt],["dag_cycle_detected",twt],["discovery_missing",rwt],["elaboration_insufficient",swt],["escalate",awt],["gate_blocked",uwt],["output_liveness_review_required",dwt],["outputs_missing",pwt],["save_wip",mwt],["unit_inputs_missing",ywt],["unit_inputs_not_declared",Ewt],["unit_naming_invalid",_wt],["unit_outputs_empty_iterations",vwt],["unresolved_dependencies",Rwt],["migrated",aRt],["select_studio",uRt],["intent_review",$At],["intent_approved",tRt],["intent_complete",rRt],["seal_intent",sRt],["external_review_requested",WAt],["revise_unit_specs",ZAt],["safe_intent_repair",JAt],["changes_requested",EAt],["close_feedback",_At],["feedback_question",vAt],["fix_quality_gates",RAt],["intent_completion_fix",IAt],["review_fix",NAt],["start_feedback_hat",LAt],["complete",FAt],["error",HAt],["loop_halted",BAt]])});var y5,Gwt=v(()=>{"use strict";ji();uo();y5=[{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:xL},{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:_0},{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:b0},{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 h7n,readFileSync as m7n,writeFileSync as g7n}from"node:fs";import{join as y7n}from"node:path";function E7n(e){let t=fc(),n=y7n(e.intentDir,"intent.md");if(!h7n(n))return t;let r=m7n(n,"utf8"),i=(0,Sbe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===Ebe||(s.plugin_version=Ebe,g7n(n,Sbe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var Sbe,S7n,Ebe,zwt=v(()=>{"use strict";Sbe=Se(Xt(),1);Nh();S7n="4.0.0",Ebe="5.0.0";xu(S7n,Ebe,E7n)});import{existsSync as b7n,readFileSync as _7n,writeFileSync as T7n}from"node:fs";import{join as v7n}from"node:path";function R7n(e){let t=fc(),n=v7n(e.intentDir,"intent.md");if(!b7n(n))return t;let r=_7n(n,"utf8"),i=(0,bbe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===_be||(s.plugin_version=_be,T7n(n,bbe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var bbe,A7n,_be,Vwt=v(()=>{"use strict";bbe=Se(Xt(),1);Nh();A7n="5.0.0",_be="6.0.0";xu(A7n,_be,R7n)});import{existsSync as w7n,readFileSync as k7n,writeFileSync as I7n}from"node:fs";import{join as x7n}from"node:path";function N7n(e){let t=fc(),n=x7n(e.intentDir,"intent.md");if(!w7n(n))return t;let r=k7n(n,"utf8"),i=(0,Tbe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===vbe||(s.plugin_version=vbe,I7n(n,Tbe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var Tbe,O7n,vbe,Wwt=v(()=>{"use strict";Tbe=Se(Xt(),1);Nh();O7n="6.0.0",vbe="7.0.0";xu(O7n,vbe,N7n)});import{existsSync as px,readdirSync as S5,readFileSync as Rbe,writeFileSync as wbe}from"node:fs";import{join as zE}from"node:path";function C7n(e){let t=Rbe(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,wbe(e,Cv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function M7n(e){let t=Rbe(e,"utf8"),n=(0,Cv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,wbe(e,Cv.default.stringify(n.content,r)),!0)}function D7n(e,t){let n=[],r=zE(e,"feedback");px(r)&&n.push(r);let i=zE(e,"stages");if(px(i))for(let s of S5(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=zE(i,s.name,"feedback");px(o)&&n.push(o)}for(let s of n)for(let o of S5(s).filter(a=>a.endsWith(".md"))){let a=C7n(zE(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function L7n(e,t){let n=zE(e,"stages");if(px(n))for(let r of S5(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=zE(n,r.name,"units");if(px(i))for(let s of S5(i).filter(o=>o.endsWith(".md")))M7n(zE(i,s))&&t.units_migrated++}}function U7n(e){let t=fc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};D7n(e.intentDir,n),L7n(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=zE(e.intentDir,"intent.md");if(px(r)){let i=Rbe(r,"utf8"),s=(0,Cv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==Abe&&(o.plugin_version=Abe,wbe(r,Cv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Cv,P7n,Abe,Kwt=v(()=>{"use strict";Cv=Se(Xt(),1);Nh();P7n="7.0.0",Abe="8.0.0";xu(P7n,Abe,U7n)});import{existsSync as Mv,readdirSync as q1,readFileSync as Ibe,rmSync as Zwt,statSync as F7n,writeFileSync as xbe}from"node:fs";import{join as La}from"node:path";function Ywt(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 H7n(e,t,n,r){let i=Ibe(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=S9({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=Ywt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(xbe(e,Dv.default.stringify(s.content,o)),!0):!1}function q7n(e,t){let n=[La(e,"feedback")],r=La(e,"stages");if(Mv(r))for(let i of q1(r,{withFileTypes:!0}))i.isDirectory()&&n.push(La(r,i.name,"feedback"));for(let i of n)if(Mv(i))for(let s of q1(i).filter(o=>o.endsWith(".md"))){let o=La(i,s),a=Ibe(o,"utf8"),c=(0,Dv.default)(a),u=c.data,l=Ywt(u);l>0&&(t.iterations_message_migrated+=l,xbe(o,Dv.default.stringify(c.content,u)))}}function hx(e,t){if(Mv(e))try{F7n(e).isDirectory()?Zwt(e,{recursive:!0,force:!0}):Zwt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function B7n(e,t){hx(La(e,"drift-markers.json"),t);let n=La(e,"stages");if(Mv(n))for(let r of q1(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=La(n,r.name);hx(La(i,"baseline.json"),t),hx(La(i,"baseline-content"),t),hx(La(i,".baseline-ack"),t),hx(La(i,"baseline-thrash.json"),t),hx(La(i,"gate-session.json"),t)}}function G7n(e){return La(e,"..","..","..")}function z7n(e){let t=fc(),n={units_migrated:0,review_slots_backfilled:0,approval_slots_stripped:0,drift_artifacts_deleted:0,iterations_message_migrated:0},r=G7n(e.intentDir),i=La(e.intentDir,"stages");if(Mv(i))for(let o of q1(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=La(i,o.name,"units");if(Mv(a))for(let c of q1(a).filter(u=>u.endsWith(".md"))){let u=La(a,c);H7n(u,e.intentDir,r,n)&&n.units_migrated++}}q7n(e.intentDir,n),B7n(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=La(e.intentDir,"intent.md");if(Mv(s)){let o=Ibe(s,"utf8"),a=(0,Dv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==kbe&&(c.plugin_version=kbe,xbe(s,Dv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Dv,j7n,kbe,Jwt=v(()=>{"use strict";Dv=Se(Xt(),1);Nh();Yf();j7n="8.0.0",kbe="9.0.0";xu(j7n,kbe,z7n)});import{existsSync as V7n,readFileSync as W7n,writeFileSync as K7n}from"node:fs";import{join as Z7n}from"node:path";function J7n(e){let t=fc(),n=Z7n(e.intentDir,"intent.md");if(!V7n(n))return t;let r=W7n(n,"utf8"),i=(0,Obe.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===Nbe&&!a||(s.plugin_version=Nbe,K7n(n,Obe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var Obe,Y7n,Nbe,Xwt=v(()=>{"use strict";Obe=Se(Xt(),1);Nh();ns();Y7n="9.0.0",Nbe="10.0.0";xu(Y7n,Nbe,J7n)});import{existsSync as Qwt,readFileSync as X7n,renameSync as Q7n,unlinkSync as $7n,writeFileSync as eQn}from"node:fs";function ekt(e,t){let n=II(e,$wt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};eQn(r,JSON.stringify(i)),Q7n(r,n)}catch{try{Qwt(r)&&$7n(r)}catch{}}}function tkt(e){try{let t=II(e,$wt);if(!Qwt(t))return null;let n=JSON.parse(X7n(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var $wt,Pbe=v(()=>{"use strict";_l();$wt="statusline.json"});import{existsSync as tQn,readFileSync as nQn,rmSync as DRi,writeFileSync as rQn}from"node:fs";function skt(e){let t=mx.get(e);if(t)return t;try{let n=II(e,ikt);if(!tQn(n))return;let r=JSON.parse(nQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>akt?void 0:(mx.set(e,r),r)}catch{return}}function sQn(e,t){mx.set(e,t);try{rQn(II(e,ikt),JSON.stringify(t),"utf8"),iQn.add(e)}catch{}}function cQn(){if(mx.size<100)return;let e=Date.now();for(let[t,n]of mx)e-new Date(n.first_seen).getTime()>akt&&mx.delete(t)}function ckt(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 ukt(e,t){if(Mbe(t))return;let n=ckt(t),r=new Date().toISOString(),i=skt(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(-Cbe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===oQn&&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(-Cbe),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=lkt(a);if(!o.churn_fired&&u.length>=nkt){let l=u.slice(-nkt),d=new Set(l);d.size<=okt&&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};sQn(e,o),cQn()}function Mbe(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(uQn.has(t)||t==="intent_review"&&e.role==="user")}function lQn(e){try{return Mbe(JSON.parse(e))}catch{return!1}}function lkt(e){return e.filter(t=>!lQn(t))}function dkt(e,t){if(Mbe(t))return null;let n=ckt(t),r=skt(e);if(!r)return null;if(r.signature===n&&r.count+1>=aQn)return{kind:"repeat",count:r.count+1,signature:n};let i=lkt([...r.recent,n].slice(-Cbe));if(i.length>=rkt){let s=i.slice(-rkt),o=new Set(s);if(o.size<=okt&&o.size>1)return{kind:"churn",distinct:o.size,window:s.length}}return null}function fkt(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. @@ -1168,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 mx,iQn,ikt,oQn,Cbe,nkt,okt,aQn,rkt,akt,uQn,pkt=v(()=>{"use strict";_l();To();mx=new Map,iQn=new Set,ikt=".deadlock-history.json";oQn=2,Cbe=10,nkt=4,okt=2,aQn=4,rkt=8,akt=3600*1e3;uQn=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as Dbe,readdirSync as dQn,readFileSync as hkt}from"node:fs";function mkt(e,t){if(!Re())return{action:null};let n=[];try{let o=`${pe(e)}/intent.md`;if(!Dbe(o))return{action:null};let a=re(hkt(o,"utf8")).data,c=[...wn(a,t),""];for(let u of c){let l=u||"intent",d=lo(e,u);if(Dbe(d))for(let f of dQn(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(hkt(`${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=Hd(h),y=yg(e,l,m);if(!Dbe(y))continue;let g=LE(e,l,()=>FD(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 gkt=v(()=>{"use strict";vr();j0();ze();ns()});import{existsSync as ykt,readdirSync as fQn,readFileSync as Skt,writeFileSync as pQn}from"node:fs";import{join as B1}from"node:path";function hQn(e,t){return new Set(bs(e,t).filter(n=>dE(e,t,n)!==null))}function mQn(e,t){return new Set(Sg(e,t).filter(n=>Nfe(e,t,n)!==null))}function gQn(e){let t=OD(e);return new Set(Uf(e).filter(n=>t[n]!=null))}function yQn(e,t){let n;try{n=(0,E5.default)(Skt(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,pQn(e,E5.default.stringify(n.content,o)),!0}function Lbe(e,t,n,r){if(ykt(e))for(let i of fQn(e).filter(s=>s.endsWith(".md")))yQn(B1(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Ekt(e){let t=[],n=pe(e),r=B1(n,"intent.md");if(!ykt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,E5.default)(Skt(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)Lbe(B1(n,"stages",o,"units"),hQn(s,o),o,t),Lbe(B1(n,"stages",o,"feedback"),mQn(s,o),`${o}/feedback`,t);return Lbe(B1(n,"feedback"),gQn(s),"feedback",t),{reconciled:t}}var E5,bkt=v(()=>{"use strict";E5=Se(Xt(),1);ze();Kn();ns()});import{existsSync as SQn,readdirSync as _kt,readFileSync as Tkt,renameSync as EQn,rmSync as bQn,writeFileSync as _Qn}from"node:fs";import{join as gx}from"node:path";function TQn(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function vkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!SQn(s))continue;let o;try{o=_kt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=TQn(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,b5.default)(Tkt(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 y=l(h),g=l(m);return y!==g?y{"use strict";b5=Se(Xt(),1);ze()});import{existsSync as G1,readdirSync as AQn,rmSync as Rkt,statSync as kkt}from"node:fs";import{join as _5}from"node:path";function wkt(e){if(G1(e))try{kkt(e).isDirectory()?Rkt(e,{recursive:!0,force:!0}):Rkt(e,{force:!0})}catch{}}function Ikt(e){let t=0,n=new Set;for(let i of RQn){let s=_5(e,i);G1(s)&&n.add(s),wkt(s)}let r=_5(e,"stages");if(G1(r)){let i=[];try{i=AQn(r)}catch{i=[]}for(let s of i){let o=_5(r,s),a=!1;try{a=kkt(o).isDirectory()}catch{continue}if(a)for(let c of wQn){let u=_5(o,c);G1(u)&&n.add(u),wkt(u)}}}for(let i of n)G1(i)||t++;return t}var RQn,wQn,xkt=v(()=>{"use strict";RQn=["drift-markers.json"],wQn=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as Lv,readdirSync as T5,readFileSync as Nkt,writeFileSync as kQn}from"node:fs";import{join as VE}from"node:path";function IQn(e){if(!Lv(e))return null;try{let t=Nkt(e,"utf8"),n=(0,v5.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function xQn(e,t,n){kQn(e,v5.default.stringify(n,t))}function OQn(e,t){let n=VE(e,"stages",t);if(!Lv(n))return!1;let r=VE(n,"units");if(Lv(r)&&T5(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||Lv(VE(n,"elaboration.md")))return!0;let i=VE(n,"feedback");return!!(Lv(i)&&T5(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||T5(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function Pkt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function NQn(e,t){let n=Pkt(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 Ckt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=VE(e,"intent.md");if(!Lv(i))return r;let s={};try{s=(0,v5.default)(Nkt(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(_=>VE(l,_.name));if(d.length===0)continue;let f=[];try{f=Object.keys(El(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=PQn(t,c),g=[],E=!0;for(let _ of d){let T=IQn(_);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:_}),E=!1;break}g.push({path:_,data:T.data,body:T.body}),NQn(T.data,y)||(E=!1)}if(!E)continue;let S=!1;for(let _=a+1;_0?R[R.length-1].completed_at:"",k=typeof x=="string"&&x.length>0?x:new Date().toISOString(),N=T.reviews&&typeof T.reviews=="object"?{...T.reviews}:{},P=T.approvals&&typeof T.approvals=="object"?{...T.approvals}:{},C=!1;for(let F of h)N[F]==null&&(N[F]={at:k,migrated:!0,synthesized_reason:Okt},r.reviewsAdded++,C=!0);for(let F of m)P[F]==null&&(P[F]={at:k,migrated:!0,synthesized_reason:Okt},r.approvalsAdded++,C=!0);C&&(T.reviews=N,T.approvals=P,xQn(_,T,A),r.unitsTouched++,b=!0)}b&&r.stagesRepaired.push(c)}return r}function PQn(e,t){try{return bs(e,t)||[]}catch{return[]}}var v5,Okt,Mkt=v(()=>{"use strict";v5=Se(Xt(),1);Kn();To();ns();Okt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as A5,readdirSync as Dkt,readFileSync as Lkt}from"node:fs";import{join as R5}from"node:path";function Ukt(e,t){let n=[];try{if(!Jfe())return{reset:n};let r=pe(e),i=ai(e,t,r);if(!i)return{reset:n};let s=R5(r,"stages",i,"units");if(!A5(s))return{reset:n};let o=bs(t,i),a=o[o.length-1]??"";for(let c of Dkt(s).filter(u=>u.endsWith(".md"))){let u=R5(s,c),l;try{l=re(Lkt(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(A5(hE(e,h)))continue;let{local:m,remote:y}=Yfe(e,h);m||y||(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 Fkt(e,t){let n=[];try{let r=pe(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=R5(r,"stages",i,"units");if(!A5(s))return{cleared:n};let o=Re(),a=Date.now();for(let c of Dkt(s).filter(u=>u.endsWith(".md"))){let u=R5(s,c),l;try{l=re(Lkt(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&&!A5(hE(e,h)),y=a-Date.parse(p),g=Number.isFinite(y)&&y>CQn;!m&&!g||(f.dispatched_at=null,De(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var CQn,jkt=v(()=>{"use strict";vr();ze();ns();xa();CQn=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as MQn,readdirSync as DQn,readFileSync as LQn,writeFileSync as UQn}from"node:fs";import{join as Ube}from"node:path";function Hkt(e,t){let n=[],r=[],i=[];for(let s of t){let o=Ube(ar(e,s),"units");if(!MQn(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=DQn(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,Fbe.default)(LQn(Ube(o,u),"utf8"))}catch{continue}let f=Array.isArray(d.data.outputs)?d.data.outputs.filter(y=>typeof y=="string"):[];if(f.length===0)continue;let p=[],h=[],m=!1;for(let y of f){if(Vh(e,l,y)){p.push(y);continue}let g=iY(e,l,y);g?(p.push(g),n.push({unit:l,from:y,to:g}),m=!0):(p.push(y),h.push(y))}if(m)try{UQn(Ube(o,u),Fbe.default.stringify(d.content,{...d.data,outputs:p}))}catch{}for(let y of h){let g=`missing-output:${l}:${y}`;if(a.has(g)){i.push(`${l}:${y}`);continue}let E=[`Unit \`${l}\` declares an output that is not on disk:`,"",` - \`${y}\``,"","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{Xo(e,s,{title:`Unit ${l}: declared output not on disk (${y})`,body:E,origin:"agent",severity:"high",author:"engine:output-validator",authorType:"system",source_ref:g,triaged_at:new Date().toISOString(),targetUnit:l}),r.push(`${l}:${y}`),a.add(g)}catch{}}}}return{repaired:n,filed:r,skipped:i}}var Fbe,qkt=v(()=>{"use strict";Fbe=Se(Xt(),1);ze()});import{existsSync as FQn,readdirSync as jQn,readFileSync as HQn}from"node:fs";import{join as Bkt}from"node:path";function zkt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=Bkt(ar(e,s),"units");if(!FQn(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,Gkt.default)(HQn(Bkt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(y=>typeof y=="string"&&qQn.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{Xo(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 Gkt,qQn,Vkt=v(()=>{"use strict";Gkt=Se(Xt(),1);ze();xa();qQn=/^unit-\d+-/});import{randomBytes as BQn}from"node:crypto";import{existsSync as Wkt,readFileSync as GQn,unlinkSync as zQn,writeFileSync as VQn}from"node:fs";import{join as WQn}from"node:path";function Kkt(e,t){let n=t??ve();return WQn(n,"intents",e,".verifier-nonces.json")}function jbe(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 Hbe(e){let t=Kkt(e);if(!Wkt(t))return{};try{let n=GQn(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function qbe(e,t){let n=Kkt(e);if(Object.keys(t).length===0){if(Wkt(n))try{zQn(n)}catch{}return}VQn(n,`${JSON.stringify(t,null,2)} -`)}function w5(e,t){let n=Hbe(e.slug),r=jbe(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=BQn(16).toString("hex");return n[r]={nonce:s,tied_to:t},qbe(e.slug,n),s}function yx(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=Hbe(e.slug),r=jbe(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],qbe(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function Bbe(e){let t=Hbe(e.slug),n=jbe(e);t[n]&&(delete t[n],qbe(e.slug,t))}var Sx=v(()=>{"use strict";ze()});import{existsSync as Jkt,readFileSync as Xkt}from"node:fs";import{join as Qkt}from"node:path";function zbe(e,t){let n;try{n=pe(e)}catch{return null}let r=Qkt(n,"intent.md");if(!Jkt(r))return null;let i=bS(),s=Number(i.split(".")[0]??"0"),o=Zkt(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&&j3(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){Qye(`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 b=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${b}`)}if(E.feedback_migrated>0){let b=E.feedback_with_synthesized_closure>0?`; ${E.feedback_with_synthesized_closure} had a terminal v3 status \u2192 synthesized \`closed_at\``:"",_=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(g){return Ke("haiku.migrate.failed",{intent:e,from:f,to:m,error:String(g?.message??g)}),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(g?.message??g)}. Resolve manually before continuing.`}})}}}Ikt(n),sSt(),Y_t();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=Ckt(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=Ukt(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=Fkt(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=Ekt(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=vkt(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=zkt(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=Hkt(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 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?KQn(e,l.action):null;return Uv(e,{position:l,action:d})}function $kt(e,t){let n=zbe(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 Zkt(e){let t=Xkt(e,"utf8");return(0,Gbe.default)(t).data}function KQn(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=ZQn(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function ZQn(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=Ykt(e,t.stage);n.verify_conversation=w5({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=w5({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=Ykt(e,t.stage);n.verify_decompose=w5({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function Ykt(e,t){let n=Qkt(pe(e),"stages",t,"elaboration.md");if(!Jkt(n))return null;try{let r=Xkt(n,"utf8"),s=(0,Gbe.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function Uv(e,t){let n=dkt(e,t.action),r=t;if(n!==null){let i=fkt(e,n);r={position:t.position,action:i}}return r.action&&Gd(e,{type:"tick_committed",action:r.action.action??"unknown"}),ukt(e,r.action),ekt(e,r.position.action),r}var Gbe,Vbe=v(()=>{"use strict";Gbe=Se(Xt(),1);rx();ze();To();l_();Nh();H3();zwt();Vwt();Wwt();Kwt();Jwt();Xwt();R1();Pbe();VL();H3();ns();xa();pkt();gkt();bkt();Akt();xkt();Mkt();jkt();qkt();Vkt();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`${YQn} ${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 YQn,Fv=v(()=>{"use strict";YQn="**ANNOUNCE TO USER (post in chat now):**"});function eIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function tIt(e){return e.includes("lost presence")}function nIt(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 rIt(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 iIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function JQn(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 XQn(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>CP(r))}function QQn(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 $Qn(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 e$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function t$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 k5(e){let t=Mi();if(sh())return e;let n=e;return n=JQn(n,t),n=XQn(n,t),n=QQn(n,t),n=$Qn(n,t),n=e$n(n,t),n=t$n(n,t),n}var Wbe=v(()=>{"use strict";Sf()});function sIt(e,t,n){Ex(n);let r=z1(e,t,n,pe(e)),i=k5(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 oIt=v(()=>{"use strict";Wbe();zd();ze()});import{existsSync as aIt,mkdirSync as n$n,readdirSync as r$n,readFileSync as i$n,writeFileSync as s$n}from"node:fs";import{join as Vd}from"node:path";function W1(e){if(!aIt(e))return{};let t=i$n(e,"utf8"),{data:n}=re(t);return n}function V1(e,t,n){let r=pe(e),i=Vd(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=W1(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=Vd(r,"stages",n,"units");if(!aIt(a))return;let c=r$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Vd(a,u),d=W1(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=jd();De(l,o,f)}}var o$n,cIt,uIt=v(()=>{"use strict";vr();Yf();zd();ih();QL();Xc();ji();uo();W9();ze();Gi();Fv();iIt();vs();oIt();o$n=(e,t)=>{};cIt={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,Lme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Vd(pe(i),"intent.md"),a=W1(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(xa(),k0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=jL(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 ye(`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 ye(`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,b=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",A=`.haiku/intents/${i}`,R=Kbe();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 N=P=>sIt(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&&Kh(o,P)}catch{}try{let P=await R(E,{autoOpen:k,reviewUrl:x,timeoutMs:144e5,signal:t}),C=gr(i,S);if(!C.ok)return WE(i,S,C,"after review wait");if(s&&qi(s,{event:"gate_decision",intent:i,stage:S,decision:P.decision,feedback:P.feedback}),P.decision==="advance")return Xr(i,s),ye(N({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(P.decision==="approved"){if(T==="intent_completion"){let U=W1(Vd(pe(i),"intent.md")).studio||"",D=Z1(i,U);if(D.length>0)return ye(N({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}));V1(i,"intent_completion",S),O5(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(N(H))}if(T==="intent_review"){V1(i,"intent_review",S);let U=Vd(process.cwd(),A,"intent.md");De(U,"intent_reviewed",!0),S&&_?K1(i,S,_):(Kh(U,["phase"]),ci(i)),It(`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:_||"execute",message:S?zn(`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.`):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(N(D))}if(T==="elaborate_to_execute"&&_){V1(i,"elaborate_to_execute",S),K1(i,S,_),Xr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:_,message:zn(`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(N(U))}if(b){V1(i,"stage_gate",S),I5(i,S,b),Xr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:b,gate_outcome:"advanced",message:zn(`The user approved stage "${S}" \u2014 advancing to "${b}".`,`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(N(U))}V1(i,"stage_gate",S),bx(i,S,"advanced"),Xr(i,s);let M=W1(Vd(pe(i),"intent.md")).studio||"",q=x5(i,M,zn(`The user approved the final stage "${S}" \u2014 intent complete.`,"Report the completion summary to the user."));return ye(N(q))}if(P.decision==="external_review"){bx(i,S,"advanced"),Xr(i,s);let M;if(Re()){let{openStagePullRequest:U}=await Promise.resolve().then(()=>(vr(),qD)),D=U({slug:i,stage:S});if(D.createdUrl){try{let H=Vd(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:P.feedback,message:M};return ye(N(q))}let F=P.annotations,V=typeof F?.revisit_action=="string"?F.revisit_action:null;if(V)return Xr(i,s),ye(N({action:V,intent:i,stage:S,message:F?.revisit_message||`Revisit dispatched on stage '${S}'. Follow the instructions returned by the orchestrator.`}));let K=Vd(process.cwd(),A),B=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?YD(K,S):!1)||!S?[]:p5(i,S,P),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:P.feedback,annotations:P.annotations,feedback_ids:B,message:zn(`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 ye(N(M))}if(T==="intent_completion"){let M=Vd(pe(i),"intent.md");De(M,"completion_review_dispatched",!1),De(M,"completion_review_skipped",!1),o$n(i,""),ci(i),It(`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:P.feedback,annotations:P.annotations,feedback_ids:B,message:zn(`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 ye(N(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:P.feedback,annotations:P.annotations,unstarted_units:M,units_dir:`.haiku/intents/${i}/stages/${S}/units/`,message:zn(`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 ye(N(q))}Xr(i,s);let G={action:"changes_requested",intent:i,stage:S,feedback:P.feedback,annotations:P.annotations,feedback_ids:B,message:zn(`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 ye(N(G))}catch(P){let C=P instanceof Error?P.message:String(P),F=P instanceof Error?P.stack:"";console.error(`[haiku] gate_review failed: ${C}`),ms(P,{intent:i,stage:S});try{let K=Vd(process.cwd(),".haiku","logs");n$n(K,{recursive:!0}),s$n(Vd(K,"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} -${F} +${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(eIt(C))return rIt(i);if(tIt(C)){Xr(i,s);let K=nIt(x,a,S);return ye(N({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 lIt,mkdirSync as a$n,readFileSync as c$n,renameSync as u$n,writeFileSync as l$n}from"node:fs";import{dirname as d$n,join as dIt}from"node:path";function fIt(e,t){let n=ve();return dIt(n,"intents",e,"stages",t,"coverage-decisions.json")}function f$n(e,t){let n=fIt(e,t);if(!lIt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(c$n(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function p$n(e,t,n){let r=fIt(e,t);a$n(d$n(r),{recursive:!0});let i=`${r}.tmp`;l$n(i,`${JSON.stringify(n,null,2)} -`),u$n(i,r)}function Zbe(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var pIt,hIt=v(()=>{"use strict";ze();Gi();pIt={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 Zbe("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return Zbe("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=ve(),u=dIt(c,"intents",t,"stages",n);if(!lIt(u))return Zbe("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=f$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),p$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 Qbe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function _It(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(eu.caret,"$1"),n=n.replace(i,o),r},getRegex:()=>new RegExp(n,t)};return r}function $h(e,t){if(t){if(eu.escapeTest.test(e))return e.replace(eu.escapeReplace,yIt)}else if(eu.escapeTestNoEncode.test(e))return e.replace(eu.escapeReplaceNoEncode,yIt);return e}function SIt(e){try{e=encodeURI(e).replace(eu.percentDecode,"%")}catch{return null}return e}function EIt(e,t){let n=e.replace(eu.findPipe,(s,o,a)=>{let c=!1,u=o;for(;--u>=0&&a[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(eu.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 Q$n(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 bIt(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 $$n(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(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 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 Pr(e,t){return Hv.parse(e,t)}var qv,jv,h$n,eu,m$n,g$n,y$n,Q1,S$n,$be,TIt,vIt,E$n,e_e,b$n,t_e,_$n,T$n,D5,n_e,v$n,AIt,A$n,r_e,mIt,R$n,w$n,k$n,I$n,RIt,x$n,_x,L5,i_e,O$n,wIt,N$n,P$n,C$n,kIt,M$n,D$n,IIt,L$n,U$n,F$n,j$n,H$n,q$n,B$n,G$n,z$n,V$n,P5,W$n,xIt,OIt,K$n,gIt,s_e,Z$n,Ybe,Y$n,N5,Y1,J$n,yIt,C5,ap,M5,o_e,cp,X1,eer,Hv,qki,Bki,Gki,zki,Vki,Wki,Kki,NIt=v(()=>{qv=Qbe();jv={exec:()=>null};h$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)}}>`)},m$n=/^(?:[ \t]*(?:\n|$))+/,g$n=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,y$n=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Q1=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,S$n=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,$be=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,TIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,vIt=$n(TIt).replace(/bull/g,$be).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(),E$n=$n(TIt).replace(/bull/g,$be).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(),e_e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,b$n=/^[^\n]+/,t_e=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,_$n=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",t_e).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),T$n=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,$be).getRegex(),D5="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",n_e=/|$))/,v$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",n_e).replace("tag",D5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),AIt=$n(e_e).replace("hr",Q1).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",D5).getRegex(),A$n=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",AIt).getRegex(),r_e={blockquote:A$n,code:g$n,def:_$n,fences:y$n,heading:S$n,hr:Q1,html:v$n,lheading:vIt,list:T$n,newline:m$n,paragraph:AIt,table:jv,text:b$n},mIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Q1).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",D5).getRegex(),R$n={...r_e,lheading:E$n,table:mIt,paragraph:$n(e_e).replace("hr",Q1).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",D5).getRegex()},w$n={...r_e,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",n_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:jv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$n(e_e).replace("hr",Q1).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",vIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},k$n=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,I$n=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,RIt=/^( {2,}|\\)\n(?!\s*$)/,x$n=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",h$n?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),kIt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,M$n=$n(kIt,"u").replace(/punct/g,_x).getRegex(),D$n=$n(kIt,"u").replace(/punct/g,wIt).getRegex(),IIt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",L$n=$n(IIt,"gu").replace(/notPunctSpace/g,i_e).replace(/punctSpace/g,L5).replace(/punct/g,_x).getRegex(),U$n=$n(IIt,"gu").replace(/notPunctSpace/g,P$n).replace(/punctSpace/g,N$n).replace(/punct/g,wIt).getRegex(),F$n=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,i_e).replace(/punctSpace/g,L5).replace(/punct/g,_x).getRegex(),j$n=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,_x).getRegex(),H$n="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",q$n=$n(H$n,"gu").replace(/notPunctSpace/g,i_e).replace(/punctSpace/g,L5).replace(/punct/g,_x).getRegex(),B$n=$n(/\\(punct)/,"gu").replace(/punct/g,_x).getRegex(),G$n=$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(),z$n=$n(n_e).replace("(?:-->|$)","-->").getRegex(),V$n=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",z$n).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),P5=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,W$n=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",P5).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),xIt=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",P5).replace("ref",t_e).getRegex(),OIt=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",t_e).getRegex(),K$n=$n("reflink|nolink(?!\\()","g").replace("reflink",xIt).replace("nolink",OIt).getRegex(),gIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,s_e={_backpedal:jv,anyPunctuation:B$n,autolink:G$n,blockSkip:C$n,br:RIt,code:I$n,del:jv,delLDelim:jv,delRDelim:jv,emStrongLDelim:M$n,emStrongRDelimAst:L$n,emStrongRDelimUnd:F$n,escape:k$n,link:W$n,nolink:OIt,punctuation:O$n,reflink:xIt,reflinkSearch:K$n,tag:V$n,text:x$n,url:jv},Z$n={...s_e,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",P5).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",P5).getRegex()},Ybe={...s_e,emStrongRDelimAst:U$n,emStrongLDelim:D$n,delLDelim:j$n,delRDelim:q$n,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",gIt).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]*?(?:(?=[\\":">",'"':""","'":"'"},yIt=e=>J$n[e];C5=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:J1(n,` -`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=$$n(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 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;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=Q$n(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=Mer(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),b=this.rules.other.blockquoteBeginRegex(h);for(;e;){let _=e.split(` -`,1)[0],T;if(f=_,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)||b.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),b=this.rules.other.headingBeginRegex(h),S=this.rules.other.htmlBeginRegex(h),E=this.rules.other.blockquoteBeginRegex(h);for(;e;){let _=e.split(` +`,1)[0],T;if(f=_,this.options.pedantic?(f=f.replace(this.rules.other.listReplaceNesting," "),T=f):T=f.replace(this.rules.other.tabCharGlobal," "),y.test(f)||b.test(f)||S.test(f)||E.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)||b.test(d)||g.test(d))break;l+=` `+f}p=!f.trim(),u+=_+` -`,e=e.substring(_.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=EIt(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=X$n(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)),bIt(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 bIt(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 Jbe{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 C5,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:eu,block:N5.normal,inline:Y1.normal};this.options.pedantic?(n.block=N5.pedantic,n.inline=Y1.pedantic):this.options.gfm&&(n.block=N5.gfm,this.options.breaks?n.inline=Y1.breaks:n.inline=Y1.gfm),this.tokenizer.rules=n}static get rules(){return{block:N5,inline:Y1}}static lex(t,n){return new Jbe(n).lex(t)}static lexInline(t,n){return new Jbe(n).inlineTokens(t)}lex(t){t=t.replace(eu.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(_.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=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=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(` `)?"":` `)+i.raw,o.text+=` @@ -1224,9 +1222,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}},M5=class{options;parser;constructor(e){this.options=e||qv}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(eu.notSpaceStart)?.[0],i=e.replace(eu.endingNewline,"")+` -`;return r?'
'+(n?i:$h(i,!0))+`
-`:"
"+(n?i:$h(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}},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`
${this.parser.parse(e)}
`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} @@ -1242,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`${$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=SIt(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=SIt(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 M5(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 C5(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 X1;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];X1.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&X1.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 eer;Pr.options=Pr.setOptions=function(e){return Hv.setOptions(e),Pr.defaults=Hv.defaults,_It(Pr.defaults),Pr};Pr.getDefaults=Qbe;Pr.defaults=qv;Pr.use=function(...e){return Hv.use(...e),Pr.defaults=Hv.defaults,_It(Pr.defaults),Pr};Pr.walkTokens=function(e,t){return Hv.walkTokens(e,t)};Pr.parseInline=Hv.parseInline;Pr.Parser=cp;Pr.parser=cp.parse;Pr.Renderer=M5;Pr.TextRenderer=o_e;Pr.Lexer=ap;Pr.lexer=ap.lex;Pr.Tokenizer=C5;Pr.Hooks=X1;Pr.parse=Pr;qki=Pr.options,Bki=Pr.setOptions,Gki=Pr.use,zki=Pr.walkTokens,Vki=Pr.parseInline,Wki=cp.parse,Kki=ap.lex});function U5(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 F5(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 a_e=v(()=>{"use strict";NIt()});var PIt,CIt,MIt=v(()=>{"use strict";PIt=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"]),CIt=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 ter}from"node:fs";import{readdir as Vu,readFile as up}from"node:fs/promises";import{basename as q5,join as wi,relative as DIt,resolve as j5}from"node:path";function c_e(e,t){try{return(0,KE.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,KE.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function LIt(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 UIt(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function FIt(e){return e.replace(/^# .+$/m,"").trim()}async function $1(e){try{let t=wi(e,"intent.md"),n=await up(t,"utf-8"),{data:r,content:i}=c_e(n,t),s=LIt(r),o=UIt(i),a=FIt(i),c=U5(a);return{slug:q5(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 jIt(e){try{let t=await up(e,"utf-8"),{data:n,content:r}=c_e(t,e),i=LIt(n),s=UIt(r),o=FIt(r),a=U5(o),c=q5(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 B5(e){let t=[];try{let n=wi(e,"stages"),r=await Vu(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=wi(n,i.name,"units"),a=(await Vu(s)).filter(c=>/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/.test(c)).sort();for(let c of a){let u=await jIt(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 G5(e){let t={};try{let n=wi(e,"stages"),r=await Vu(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=i.name,o=await ner(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 ner(e,t){let n=wi(e,t),r=wi(n,"units"),i=[];try{let l=(await Vu(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,KE.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 z5(e){let t=[];try{let n=wi(e,"knowledge"),r=await Vu(n);for(let i of r.sort())if(i.endsWith(".md"))try{let s=await up(wi(n,i),"utf-8"),{content:o}=(0,KE.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function V5(e){let t=[];try{let n=wi(e,"stages"),r=await Vu(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=wi(n,i.name),o=await Vu(s);for(let a of o.sort())if(a.endsWith(".md"))try{let c=await up(wi(s,a),"utf-8"),{content:u}=(0,KE.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 Vu(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,KE.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function HIt(e){let t=[],n;try{n=await Vu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return t}for(let r of n){let i=wi(e,r.name);r.isDirectory()?t.push(...await HIt(i)):t.push(i)}return t}async function H5(e,t,n,r){let i=q5(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await up(e,"utf-8"),{content:a}=(0,KE.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(ier.includes(s))try{let o=await up(e,"utf-8"),a=await UY(o,e,M_t(e,r));return{stage:t,name:n,type:"html",content:a,relativePath:r}}catch{return null}if(rer.includes(s))return{stage:t,name:n,type:"image",relativePath:r};if(ser.includes(s))return{stage:t,name:n,type:"video",relativePath:r};if(aer.includes(s))try{let o=await up(e,"utf-8");return{stage:t,name:n,type:"code",language:oer[s],content:o,relativePath:r}}catch{}try{let o=await up(e);if(cer(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 cer(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 eU(e,t){let r=`.haiku/intents/${q5(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function ler(e){let t=[],n=j5(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):j5(n,"..","..",".."),o=`${s}/`,a;try{a=await Vu(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 Vu(l,{withFileTypes:!0,encoding:"utf8"})).filter(f=>f.isFile()&&uer.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"),g=c_e(m,p).data.outputs;h=Array.isArray(g)?g.filter(E=>typeof E=="string"):[]}catch{continue}for(let m of h){let y=eU(m,e),g=j5(n,y),E=g!==n&&g.startsWith(r),S=g,b=DIt(n,g),_=b;if(!(E&&ter(g))){let A=j5(s,m);if(A!==s&&A.startsWith(o))S=A,b=m,_=void 0;else if(!E)continue}let T=await H5(S,u,b,_??b);T&&(_===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function qIt(e,t=""){let n=[],r;try{r=await Vu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&PIt.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 qIt(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function W5(e){let t=[],n=[],r=new Set,i=[];try{let s=wi(e,"stages");i=(await Vu(s,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(a=>a.name);for(let a of i){let c=wi(s,a,"artifacts"),u=(await HIt(c)).sort();for(let l of u){let d=DIt(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await H5(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await ler(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await qIt(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||der.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await H5(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 K5(e){let t=[],n=await BIt(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await H5(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 BIt(e,t=""){let n=[],r;try{r=await Vu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&CIt.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await BIt(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var KE,rer,ier,ser,oer,aer,uer,der,Z5=v(()=>{"use strict";gD();KE=Se(Xt(),1);uEe();a_e();MIt();rer=[".png",".jpg",".jpeg",".svg",".webp",".gif"],ier=[".html",".htm"],ser=[".mp4",".webm",".mov",".m4v",".ogv"],oer={".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"},aer=[".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"];uer=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;der=new Set(["BRIEF.md","elaboration.md","observations.md"])});var GIt=v(()=>{"use strict";Kpe();a_e();Z5()});function tU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var u_e=v(()=>{"use strict"});import{readFile as zIt,stat as fer}from"node:fs/promises";import{basename as KIt,relative as per,resolve as VIt}from"node:path";function l_e(e){let t=KIt(e);return!!(t.startsWith(".")||Ser.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function YIt(e,t,n){if(!n||n.length===0)return[];let r=VIt(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||l_e(o))continue;let a=eU(o,e),c=VIt(r,a);if(c!==r&&!c.startsWith(i))continue;let u=per(r,c),l=KIt(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=tU(t,u),m=!0,y;try{let E=await fer(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 zIt(c,"utf-8"),{content:b}=(0,ZIt.default)(S);E=WIt(b,her)}catch{}s.push({...g,type:"markdown",...E!==void 0?{previewBody:E}:{}});continue}if(yer.has(f)){let E;if(m)try{let S=await zIt(c,"utf-8");E=WIt(S,mer)}catch{}s.push({...g,type:"html",...E!==void 0?{previewBody:E}:{}});continue}if(ger.has(f)){s.push({...g,type:"image"});continue}s.push({...g,type:"file"})}return s}function WIt(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 ZIt,her,mer,ger,yer,Ser,d_e=v(()=>{"use strict";ZIt=Se(Xt(),1);Z5();u_e();her=2e3,mer=2e3,ger=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),yer=new Set([".html",".htm"]),Ser=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as JIt,readFile as Eer}from"node:fs/promises";import{basename as ber,join as f_e,relative as _er,resolve as XIt}from"node:path";async function $It(e){let t=XIt(e),n=`${t}/`,r={},i;try{i=await JIt(f_e(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=f_e(e,"stages",s.name,"units"),a;try{a=(await JIt(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&&Ter.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=f_e(o,c),l=ber(c,".md"),d;try{let f=await Eer(u,"utf-8"),p=(0,QIt.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(l_e(f))continue;let p=eU(f,e),h=XIt(t,p);if(h!==t&&!h.startsWith(n))continue;let m=_er(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var QIt,Ter,e0t=v(()=>{"use strict";QIt=Se(Xt(),1);Z5();d_e();Ter=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as ver}from"node:child_process";import{appendFileSync as Aer,existsSync as p_e,mkdirSync as r0t,writeFileSync as i0t}from"node:fs";import{readFile as nU}from"node:fs/promises";import{dirname as h_e,join as em,resolve as J5}from"node:path";async function o0t(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await YIt(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await $It(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.`),Z_t(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=ver(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 Y5(e){try{Aer(ker,`${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 Ier(e,t){if(!t){Y5(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(Y5(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){Y5(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Iv(e,"tool call cancelled");return}t.addEventListener("abort",()=>{Y5(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Iv(e,"tool call cancelled")},{once:!0})}async function a0t(e,t){let{name:n,arguments:r}=e.params;if(rU.has(n))return y_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(!Pne())try{let u=em(ve(),"reports");r0t(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=em(u,`${l}.json`);return i0t(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 Nne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,dge,"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 $1(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(()=>(xa(),k0)),h=u||(d?f(o,d)??"":""),m=await B5(a),y=h4(m),g=g4(y,m),E=c.sections.find(B=>B.heading?.toLowerCase().includes("completion criteria")||B.heading?.toLowerCase().includes("success criteria")),S=E?F5(E.content):[],b=O9({intent_dir:a,intent_slug:o,target:""});b.ad_hoc=!0,b.stage=h||void 0;let{unitOutputs:_,outputDeclaredBy:T}=await o0t(a,b.session_id,m);Object.assign(b,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:g,unitOutputs:_,outputDeclaredBy:T});let A=await G5(a),R=await z5(a),x=await V5(a),{outputs:k,other:N}=await W5(a),P=await K5(a);for(let B of[...k,...N,...P])B.relativePath&&(B.intentRelativePath=B.relativePath,B.relativePath=tU(b.session_id,B.relativePath));Object.assign(b,{stageStates:A,knowledgeFiles:R,stageArtifacts:x,outputArtifacts:k,otherFiles:N,intentOtherFiles:P});let C=await GE(),F=Bi()?vv(b.session_id,await jg(C),"intent"):`http://127.0.0.1:${C}/review/${b.session_id}`,V=h?`/stages/${h}`:"",K=`${F}${V}`;Ier(b.session_id,t);let $=i.gate_kind||"";return $==="spec"||$==="approval"?(b.ad_hoc=!1,lp(K,"User gate review",b.session_id),{content:[{type:"text",text:`User-gate review opened for stage "${h||"(unspecified)"}". Review URL: ${K} +`)}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.`}]}):(lp(K,"Ad-hoc review",b.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_")&&!xer.has(n))return cSe(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=Rer.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>h_e(J5(h))),l=gye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await GE(),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 n0t(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,yge,"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(N=>N.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(N=>N.slug).join(", ")}). Pass \`intent\` explicitly.`})}],isError:!0}}}let u=pe(c);if(!p_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?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=Tye(h_e(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=tSt(o.command,d):h=nSt(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 $1(u))?.frontmatter;R&&typeof R.studio=="string"&&R.studio&&(m=R.studio)}catch{}let y=f||h?"boot":"viewer",g=Eye({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,x,k;if(f&&p){let P=await vye(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,x=P.primary.pid,k=P.processes}else if(h){let P=await iSt(g.session_id,h);if(P.port===null)throw new Error("single-process boot returned null port");A=P.port,R=P.command,x=P.pid}else throw new Error("boot mode reached without group or detection");bye(g.session_id,{boot_port:A,boot_pid:x,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: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(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 GE(),S=Bi()?vv(g.session_id,await jg(E),"view"):`http://127.0.0.1:${E}/view/${g.session_id}`,b=new URLSearchParams;o.stage&&b.set("stage",o.stage),o.artifact&&b.set("artifact",o.artifact);let _=b.toString(),T=_?`${S}${S.includes("?")?"&":"?"}${_}`: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=Be(i,Sge,"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,Ume,"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 n0t(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=wer.parse(r),s=i.title??"Design Direction";try{let l=em(ve(),"intents",i.intent_slug,"intent.md");if(p_e(l)){let d=await nU(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await l0t(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 nU(J5(i.archetypes_file),"utf-8");h=O.array(m_e).parse(JSON.parse(g))}let m=h[0];g_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 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:zn(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 nU(J5(i.archetypes_file),"utf-8");o=O.array(m_e).parse(JSON.parse(l))}let a=yye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await GE(),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 t0t(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,Fme,"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 t0t(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function c0t(e,t,n){let r=J5(process.cwd(),e),i=await $1(r);if(!i)throw new Error("Could not parse intent");let s=await B5(r),o=h4(s),a=g4(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?F5(c.content):[],l=jL(i.slug),d=l??O9({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 o0t(r,d.session_id,s);Object.assign(d,{parsedIntent:i,parsedUnits:s,parsedCriteria:u,parsedMermaid:a,unitOutputs:f,outputDeclaredBy:p});let h=mye(r);h&&(d.previousReview=h);let m=await G5(r),y=await z5(r),g=await V5(r),{outputs:E,other:S}=await W5(r),b=await K5(r);for(let k of[...E,...S,...b])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=tU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:y,stageArtifacts:g,outputArtifacts:E,otherFiles:S,intentOtherFiles:b});let _=await GE(),T=Bi(),A=T?vv(d.session_id,await jg(_),"intent"):`http://127.0.0.1:${_}/review/${d.session_id}`,R=l!==void 0,x=R&&lv(d.session_id);return Gd(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 Oer(e,t,n,r){return!(!e||!t||lv(n)||r&&HL(r))}async function u0t(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(Oer(n,i,e,o.intent_slug)&&lp(i,"Review gate"),o.pending_decision){let u=o.pending_decision;return Pl(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}),Gd(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;Pl(e,{await_active:!0,await_count:c+1,last_await_started_at:a}),Gd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),fye(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 Pl(e,{pending_decision:null}),{decision:d.decision,feedback:d.feedback,annotations:d.annotations}}if(u)break;if(hye(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{pye(e),Pl(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),Gd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function l0t(e){let t=em(ve(),"intents",e,"intent.md");if(!p_e(t))return null;let n=await nU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(xa(),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 g_e(e){r0t(h_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}`),i0t(e.absPath,s0t.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 t0t(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 nU(em(ve(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(xa(),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 l0t(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{g_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: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{g_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:zn(u.join(` -`),"Call `haiku_run_next` to continue \u2014 the workflow will surface any screenshot annotations the user attached.")}]}}async function n0t(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";s0t=Se(Xt(),1);Sl();vr();a5();GIt();rx();R1();zd();e0t();ih();Xc();u_e();ji();uo();ze();Kn();Fv();iU();Jh();d_e();VL();Rer=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.")}),m_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")}),wer=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(m_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')")});ker="/tmp/haiku-session-cancel.log";xer=new Set(["haiku_view","haiku_view_close","haiku_await_visual_answer","haiku_await_design_direction"])});async function Wu(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=Sye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await GE(),i;if(Bi()){let a=await jg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Jh(),n_t));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??Ner,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 Ner,ZE=v(()=>{"use strict";a5();Xc();Jh();X5();Ner=1800*1e3});function YE(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function Per(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 d0t,f0t=v(()=>{"use strict";rEe();ZE();ji();uo();Gi();vs();d0t={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,jme,"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(!IL.includes(s))return YE({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${IL.join(", ")}.`});if(s==="preview_cursor")try{let l=CY({slug:i});return ye(JSON.stringify(l))}catch(l){return YE({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=Per(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} +`,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();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 Wu({intentSlug:i,kind:"confirm",title:`DEBUG: ${s} on ${i}`,prompt:`${c}${o} +`:"",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 YE({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=OY({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,y]of Object.entries(p))h.push({field:m,result:ex({slug:i,field:m,value:y})});return ye(JSON.stringify({batch:!0,count:h.length,results:h}))}let l=e.field,d=e.value;if(!l)return YE({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=NY({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return YE({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=PY({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 y of h)m.push({feedback_id:y,result:tx({slug:i,stage:d,feedbackId:y,patch:l})});return ye(JSON.stringify({batch:!0,count:m.length,results:m}))}let f=e.feedback_id;if(!f)return YE({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 YE({error:"unhandled_op",op:s})}}catch(l){return YE({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as S_e,readFileSync as Cer}from"node:fs";import{join as Q5}from"node:path";function Mer(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?Q5(e,r):r.startsWith("/")?r:Q5(e,".haiku","intents",t,r)}var p0t,h0t=v(()=>{"use strict";vr();j0();ji();uo();ze();Kn();To();Gi();vs();p0t={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,Hme,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=ve(),a=Q5(o,"intents",r);if(!S_e(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(!S_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(Cer(Q5(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=Mer(c,r,f.location);if(p&&!S_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=LE(r,i,()=>mpe(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 m0t}from"node:child_process";import{existsSync as Bv,readdirSync as E_e,readFileSync as Wg,statSync as Der,writeFileSync as Tx}from"node:fs";import{join as dp,resolve as Ler}from"node:path";function Fer(e,t,n){try{let r=(0,_c.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,_c.default.stringify(r.content,i)),o}catch{return 1}}function y0t(){let e=[];try{e=zL(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?RD(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function $5(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 E_e(i).filter(a=>a.endsWith(".md")))try{let a=dp(i,o),c=(0,_c.default)(Wg(a,"utf8")).data;c.author==="engine"&&r.includes(c.source_ref)&&s.push({path:a,data:c})}catch{}return s}function S0t(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function E0t(e,t){try{let n=(0,_c.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,_c.default.stringify(n.content,r))}catch{}}function jer(e,t){try{let n=(0,_c.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,_c.default.stringify(n.content,r))}catch{}}function Her(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=Kye(e,u);if(l===null)zer(u,"quality_gates"),r.push(c);else if(l.environment){let d=Fer(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}`;$5(e,t,[m,d]).length>=b_e?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 ${b_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.`;jer(u,f);let y=[d,...h.map(g=>`${d}:${g}`)];for(let g of $5(e,t,y))S0t(g.data)&&E0t(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}`;Xo(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=y0t(),u=o.every(h=>h.attempts>Uer),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=Rfe(),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=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=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(` `)} @@ -1288,98 +1286,98 @@ ${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 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=Ber(t),i=Ger(n,r);if(i.length===0)return g0t(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=m0t("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?Ler(s,u.dir):s;try{m0t(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 g0t(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(zL(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=P3(o,{requiredTools:u});if(l.environment){let d=y0t(),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=Rfe();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}. +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(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=$5(e,"","intent_quality_gates").length;if(a>=b_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.`;Ver(e,o);for(let d of $5(e,"","intent_quality_gates"))S0t(d.data)&&E0t(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 Xo(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"}),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 Ber(e){let t=dp(e,"intent.md");if(!Bv(t))return new Set;try{let r=(0,_c.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 Ger(e,t=new Set){if(!Bv(e))return[];let n=new Map,r=E_e(e).filter(i=>{try{return Der(dp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=dp(e,i,"units");if(!Bv(s))continue;let o=E_e(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,_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 zer(e,t){let n=Wg(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);Tx(e,c)}function Ver(e,t){let n=dp(pe(e),"intent.md");if(Bv(n))try{let r=(0,_c.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,_c.default.stringify(r.content,i))}catch{}}function g0t(e,t){let n=dp(pe(e),"intent.md");if(!Bv(n))return;let r=Wg(n,"utf8"),i=(0,_c.default)(r),s=i.data,o=s.approvals??{};o[t]={at:new Date().toISOString()},s.approvals=o,Tx(n,_c.default.stringify(i.content,s))}var _c,Uer,b_e,b0t,_0t=v(()=>{"use strict";_c=Se(Xt(),1);wfe();kfe();Yf();ze();VL();Gi();vs();Uer=1;b_e=2;b0t={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):Her(t,n,r)}}});import{existsSync as T0t,readFileSync as Wer}from"node:fs";import{join as e6}from"node:path";var v0t,A0t=v(()=>{"use strict";ns();xa();ji();uo();ze();To();Gi();Fv();vs();v0t={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,vge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=ve(),s=e6(i,"intents",n),o=e6(s,"intent.md");if(!T0t(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(Wer(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(!ZD(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=e6(s,"stages",r);if(T0t(e6(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(y=>y!==r);return De(o,"stages",m),It(`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 Ker,randomBytes as Zer}from"node:crypto";import{existsSync as Gv,readFileSync as v_e,realpathSync as R0t,unlinkSync as Yer}from"node:fs";import{writeFile as Jer}from"node:fs/promises";import{dirname as T_e,isAbsolute as Xer,join as zv,relative as sU,resolve as __e}from"node:path";function Qer(e){let t=zv(e,"settings.yml");if(!Gv(t))return!1;try{let n=v_e(t,"utf8"),{data:r}=(0,w0t.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 $er(e){let t=zv(e,"write-audit.jsonl");if(!Gv(t))return 1;try{return v_e(t,"utf8").split(` -`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function ttr(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 ntr(e,t,n){let r=nv(e),i=__e(t);if(Xer(r)){let l=__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=__e(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=sU(i,s),a=T_e(s);if(Gv(a))try{let l=R0t(a),d=R0t(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 etr)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=ttr(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 w0t,etr,k0t,I0t=v(()=>{"use strict";w0t=Se(Xt(),1);s5();A0();i5();M9();ze();Gi();vs();etr=[{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."}];k0t={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(o1(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(s1(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(Qer(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=Ryt(f),y=ntr(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=zv(f,g),S=T_e(E);if(!c&&Gv(E)){let M="";try{let{createHash:q}=await import("node:crypto"),U=v_e(E);M=q("sha256").update(U).digest("hex")}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"path_already_exists",path:g,existing_sha:M,message:`Path '${g}' 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:g,missing_dir:sU(f,S),message:`Parent directory '${sU(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let b=[];if(u){let M=S,q=[];for(;!Gv(M);){q.unshift(M);let U=T_e(M);if(U===M)break;M=U}for(let U of q)b.push(sU(f,U))}let _=Ker("sha256").update(h).digest("hex"),T=process.pid,A=Zer(6).toString("hex"),R=zv(f,`.hwm-tmp-${T}-${A}.tmp`);try{await Jer(R,h)}catch(M){return U0(R),{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path:g,message:`Failed to write tempfile for '${g}': ${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:g,reason:M?x.code:void 0,message:M?`Refused to write '${g}': parent directory chain failed symlink-safety check (${x.code}).`:`Failed to write '${g}': ${x.detail}`},null,2)}],isError:!0}}let k=g.match(/^stages\/([^/]+)\//),N=k===null,P;try{P=N?a1(f):CE(f,k[1])}catch(M){if(M instanceof qd){try{Yer(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}': ${M.message}`},null,2)}],isError:!0}}throw M}let C=N?"intent":"stage",F=new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),V=$er(f),K=U1(P,V),$=_9(d);await Pv(f,P,{entry_type:"human_write",path:g,sha:_,author_class:"human-via-mcp",timestamp:F,claimed_author_id:s,human_author_id:s,entry_id:K,tick_counter:P,tick_scope:C});let B=!1,X;if($)X="drift_detection_disabled";else{let M=a?zvt(a):null;B=(await F1(f,{timestamp:F,entry_id:K,path:g,sha:_,author_class:"human-via-mcp",claimed_author_id:s,human_author_id:s,rationale:o,user_instruction_excerpt:M,tick_counter:P,session_id:null,overwrite:c,dirs_created:b,audit_log_appended:!0,tick_scope:C})).ok}let G={ok:!0,path:g,sha:_,author_class:"human-via-mcp",timestamp:F,claimed_author_id:s,human_author_id:s,dirs_created:b,action_log_entry_id:K,audit_log_appended:B};return X&&(G.reason=X),ye(JSON.stringify(G,null,2))}}});import{existsSync as rtr,readFileSync as itr}from"node:fs";import{join as otr}from"node:path";var x0t,O0t=v(()=>{"use strict";vr();ze();Gi();vs();x0t={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=otr(n,"intents",t,"intent.md");if(!rtr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let{data:i}=re(itr(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),It(`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 t6}from"node:child_process";import{existsSync as atr,mkdirSync as A_e,writeFileSync as R_e}from"node:fs";import{join as tm}from"node:path";function N0t(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 P0t,C0t=v(()=>{"use strict";vr();Ife();QL();ji();uo();ze();Kn();To();l_();Gi();vs();P0t={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:xL,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(i1(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=N0t(i),o=N0t(t||"");if(s||o){let g=s&&o?"title and description":s?"title":"description",E=s||o;return ye(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 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 g of a){if(typeof g!="string")continue;let E=si(g);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(Re())try{let g=Kfe();jt(f)||RI(r,g||void 0);let E="";try{E=t6("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}E!==f&&t6("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(atr(tm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));A_e(tm(d,"knowledge"),{recursive:!0}),A_e(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: ${bn()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` -`);if(R_e(tm(d,"intent.md"),m),De(tm(d,"intent.md"),"studio_candidates",c),R_e(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(` -`)),Re())try{let g=`.haiku/intents/${r}/.gitattributes`;t6("git",["add","--",g],{stdio:"pipe"}),t6("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",g],{stdio:"pipe"})}catch{}if(p){let g=tm(d,"knowledge");A_e(g,{recursive:!0}),R_e(tm(g,"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} -`)}It(`haiku: create intent ${r}`);let y="";if(Re()&&MD()!==null)try{let g=tm(d,"intent.md"),E=epe({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} --- -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(g,"draft_pr_url",E.createdUrl),De(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});b.createdUrl?(Me(y,"draft_pr_url",b.createdUrl),Me(y,"draft_pr_status","draft"),g=` -Draft PR opened: ${E.createdUrl}`):E.compareUrl?(De(g,"draft_pr_status","failed"),y=` +Draft PR opened: ${b.createdUrl}`):b.compareUrl?(Me(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}`):(De(g,"draft_pr_status","failed"),y=` +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: ${E.message}`),It(`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(g){console.error(`[haiku_intent_create] draft-PR open threw: ${g instanceof Error?g.message:String(g)}`)}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.${y}`},null,2))}}});import{execFileSync as w_e}from"node:child_process";import{existsSync as M0t,readFileSync as D0t,rmSync as ctr}from"node:fs";import{join as k_e}from"node:path";var L0t,U0t=v(()=>{"use strict";vr();zd();ZE();ze();Gi();vs();L0t={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=k_e(r,"intents",n),s=k_e(i,"intent.md");if(!M0t(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=D0t(s,"utf8"),{data:a,body:c}=re(o),u=a.title||"",l=c.replace(/^#\s+.*\n+/,"").trim()||u,d=await Wu({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=k_e(i,"knowledge","CONVERSATION-CONTEXT.md");M0t(p)&&(f=D0t(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(Re()){try{let g=pc(),E="";try{E=w_e("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(g&&E!==g)try{w_e("git",["checkout",g],{encoding:"utf8",stdio:"pipe"})}catch(S){try{w_e("git",["checkout",`${g}^0`],{encoding:"utf8",stdio:"pipe"})}catch(b){let _=S instanceof Error?S.message:String(S),T=b instanceof Error?b.message:String(b);throw new Error(`could not move HEAD off the haiku branches: \`git checkout ${g}\` failed (${_.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(jD(n),m){let g=Fs(m);for(let E of g){let S=`haiku/${n}/${E}`;jt(S)&&gE(n,E)}}let y=`haiku/${n}/main`;jt(y)&&HD(y)}return ctr(i,{recursive:!0,force:!0}),It(`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 utr,readFileSync as ltr,writeFileSync as dtr}from"node:fs";import{join as ftr}from"node:path";var I_e,F0t,j0t=v(()=>{"use strict";I_e=Se(Xt(),1);vr();Sx();ji();uo();ze();Gi();vs();F0t={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:b0,handle(e){let t=Be(e,xge,"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=ftr(o,"intents",n,"intent.md");if(!utr(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=ltr(a,"utf8"),l=(0,I_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()),dtr(a,I_e.default.stringify(l.content,p)),It(`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 ptr,readFileSync as htr,writeFileSync as mtr}from"node:fs";import{join as gtr}from"node:path";var x_e,H0t,q0t=v(()=>{"use strict";x_e=Se(Xt(),1);vr();ze();Gi();vs();H0t={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=gtr(n,"intents",t,"intent.md");if(!ptr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=htr(r,"utf8"),s=(0,x_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 mtr(r,x_e.default.stringify(s.content,c)),It(`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 ytr}from"node:crypto";import{existsSync as B0t,readFileSync as G0t}from"node:fs";function Str(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 Etr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function btr(e){let t=tbe(e);if(!B0t(t))return 1;try{return G0t(t,"utf8").split(` -`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function n6(e){let t=Str(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!Etr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!B0t(e))return{stamped:!1,reason:"file_missing"};let n;try{n=ytr("sha256").update(G0t(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?CE(t.intentDir,t.stageOwner):CE(t.intentDir),i=btr(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 Pv(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 O_e=v(()=>{"use strict";s5();A0()});import{realpathSync as z0t}from"node:fs";import{isAbsolute as _tr,join as V0t}from"node:path";function N_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var W0t,K0t=v(()=>{"use strict";O_e();ze();Gi();W0t={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 N_e("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return N_e("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=V0t(i,"intents",t),o=_tr(n)?n:V0t(s,n),a=(()=>{try{return z0t(s)}catch{return s}})(),c=(()=>{try{return z0t(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return N_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 n6(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 Z0t,Y0t,J0t=v(()=>{"use strict";pv();ji();uo();To();Gi();vs();Z0t="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.",Y0t={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,Ege,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=Rye(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)`:""}. ${Z0t}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${Z0t}`}))}}});import{appendFileSync as Ttr}from"node:fs";function r6(e){return Date.now()-e>X0t}function i6(e,t,n,r){let i=Date.now()-n;return nm(`${e} (wall-deadline ${X0t}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 vtr(e){let t=`[${new Date().toISOString()}] ${e} -`;try{let n=Eft("loop-guards.log");return Ttr(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=vtr(`loop guard fired: ${s}`),a=o?` +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(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 oU,X0t,Q0t=v(()=>{"use strict";_l();oU=16,X0t=9e4});var ext={};Rr(ext,{invalidateDownstreamApprovals:()=>ktr});import{existsSync as Atr,readdirSync as Rtr,readFileSync as wtr}from"node:fs";import{join as $0t}from"node:path";function ktr(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=$0t(e.intentDir,"stages",o,"units");if(!Atr(a))continue;let c=Rtr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=$0t(a,l);try{let f=wtr(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"),Kh(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 txt=v(()=>{"use strict";ze();ns()});var FNt={};Rr(FNt,{AbortError:()=>QE,EXIT_REASONS:()=>Jir,HOOK_EVENTS:()=>Yir,createSdkMcpServer:()=>ffr,query:()=>pfr,tool:()=>dfr,unstable_v2_createSession:()=>hfr,unstable_v2_prompt:()=>gfr,unstable_v2_resumeSession:()=>mfr});import{join as rxt}from"path";import{fileURLToPath as Cnr}from"url";import{setMaxListeners as Mnr}from"events";import{spawn as Lnr}from"child_process";import{createInterface as Unr}from"readline";import*as Zt from"fs";import{stat as Fnr}from"fs/promises";import{join as Iir}from"path";import{homedir as xir}from"os";import{dirname as B_e,join as aOt}from"path";import{cwd as Oir}from"process";import{realpathSync as Nir}from"fs";import{randomUUID as Pir}from"crypto";import{randomUUID as Xir}from"crypto";import{appendFileSync as Qir,existsSync as $ir,mkdirSync as esr}from"fs";import{join as lxt}from"path";import{randomUUID as isr}from"crypto";import{join as fxt}from"path";import{fileURLToPath as ssr}from"url";function TTe(e=Dnr){let t=new AbortController;return Mnr(e,t.signal),t}function Wnr(e){var t=znr.call(e,aU),n=e[aU];try{e[aU]=void 0;var r=!0}catch{}var i=Vnr.call(e);return r&&(t?e[aU]=n:delete e[aU]),i}function Jnr(e){return Ynr.call(e)}function err(e){return e==null?e===void 0?$nr:Qnr:ixt&&ixt in Object(e)?Knr(e):Xnr(e)}function nrr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function arr(e){if(!rOt(e))return!1;var t=trr(e);return t==irr||t==srr||t==rrr||t==orr}function lrr(e){return!!sxt&&sxt in e}function hrr(e){if(e!=null){try{return prr.call(e)}catch{}try{return e+""}catch{}}return""}function vrr(e){if(!rOt(e)||drr(e))return!1;var t=crr(e)?Trr:yrr;return t.test(mrr(e))}function Rrr(e,t){return e?.[t]}function krr(e,t){var n=wrr(e,t);return Arr(n)?n:void 0}function xrr(){this.__data__=mU?mU(null):{},this.size=0}function Nrr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Lrr(e){var t=this.__data__;if(mU){var n=t[e];return n===Crr?void 0:n}return Drr.call(t,e)?t[e]:void 0}function Hrr(e){var t=this.__data__;return mU?t[e]!==void 0:jrr.call(t,e)}function Grr(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=mU&&t===void 0?Brr:t,this}function qx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function iir(e,t){var n=this.__data__,r=C6(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 kir(e,t){if(!t)return!0;let n=Rir(e);return wir(n,t)}function oOt(){return process.env.CLAUDE_CONFIG_DIR??Iir(xir(),".claude")}function cxt(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function cOt(e){return{name:e,default:s6,validate:t=>{if(!t)return{effective:s6,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:s6,status:"invalid",message:`Invalid value "${t}" (using default: ${s6})`}:n>C_e?{effective:C_e,status:"capped",message:`Capped from ${n} to ${C_e}`}:{effective:n,status:"valid"}}}}function Dir(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=Nir(Oir())),{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:Pir(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[Cir,Mir],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 Uir(){return Lir.sessionId}function Fir({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 uxt.add(e),()=>uxt.delete(e)}function Hir(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 lOt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>uOt&&(Zg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function rm(e,t,n){let r=Hir(e);return lOt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function Gir(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=Bir();return kir(e,t)}function Vir(){return o6||(o6=Fir({writeFn:e=>{let t=pOt();Jg().existsSync(B_e(t))||Jg().mkdirSync(B_e(t)),Jg().appendFileSync(t,e),Wir()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:qir()}),jir(async()=>o6?.dispose())),o6}function Zg(e,{level:t}={level:"debug"}){if(!Gir(e))return;zir&&e.includes(` -`)&&(e=rm(e));let r=`${new Date().toISOString()} [${t.toUpperCase()}] ${e.trim()} -`;if(fOt()){vir(r);return}Vir().write(r)}function pOt(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??aOt(oOt(),"debug",`${Uir()}.txt`)}function fo(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>uOt&&(Zg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Jg(){return Zir}function RTe(){return process.versions.bun!==void 0}function tsr(){if(dxt)return a6;if(dxt=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=lxt(oOt(),"debug");return a6=lxt(e,`sdk-${Xir()}.txt`),$ir(e)||esr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${a6} -`),a6}function Vv(e){let t=tsr();if(!t)return;let r=`${new Date().toISOString()} ${e} -`;Qir(t,r)}function nsr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...dOt(n.settings),sandbox:t}}catch{}n.settings=rm(r)}return n}function rsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function hOt(e){return new y6(e)}function osr(e,t){return new y6({...t,resume:e})}function z_e(){return csr}function Ze(e,t){let n=z_e(),r=V_e({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===gU?void 0:gU].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 gOt(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 Rsr(e){return new RegExp(`^${gOt(e)}$`)}function wsr(e){let t=`${mOt}T${gOt(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 ksr(e,t){return!!((t==="v4"||!t)&&Ssr.test(e)||(t==="v6"||!t)&&bsr.test(e))}function Isr(e,t){if(!hsr.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 xsr(e,t){return!!((t==="v4"||!t)&&Esr.test(e)||(t==="v6"||!t)&&_sr.test(e))}function Osr(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 Dl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=hp.create(Ax(r))}return new Dl({...e._def,shape:()=>t})}else return e instanceof tb?new tb({...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 K_e(e,t){let n=XE(e),r=XE(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=K_e(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(J_e,e),J_e}function Psr(e){return e}function Csr(e){return e}function Msr(e){}function Dsr(e){throw new Error}function Lsr(e){}function wTe(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 X_e(e,t="|"){return e.map(n=>xTe(n)).join(t)}function SOt(e,t){return typeof t=="bigint"?t.toString():t}function D6(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function L6(e){return e==null}function U6(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function EOt(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 kTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Usr(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Fsr(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 Gsr(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 xTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function TOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Vsr(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 Wsr(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 Ksr(e,t){if(!IU(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 kTe(this,"shape",r),r},checks:[]};return ty(e,n)}function Zsr(e,t){return ty(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return kTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Ysr(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 Jsr(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 dU(e){return typeof e=="string"?e:e?.message}function ey(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=dU(e.inst?._zod.def?.error?.(e))??dU(t?.error?.(e))??dU(n.customError?.(e))??dU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Xsr(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function F6(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function AOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Qsr(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function $sr(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 eor(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 UOt(n)}function har(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 Sxt(e,t,n){e.issues.length&&t.issues.push(...$E(n,e.issues)),t.value[n]=e.value}function c6(e,t,n){e.issues.length&&t.issues.push(...$E(n,e.issues)),t.value[n]=e.value}function Ext(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(...$E(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function bxt(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 eTe(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(IU(e)&&IU(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=eTe(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 kcr(){return OU(e=>e.trim())}function Icr(){return OU(e=>e.toLowerCase())}function xcr(){return OU(e=>e.toUpperCase())}function Ocr(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function Ncr(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function Pcr(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function Ccr(e,t){if(e instanceof _6){let r=new v6(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 v6(t);return n.process(e),n.emit(e,t)}function ko(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 ko(i.element,n);case"object":{for(let s in i.shape)if(ko(i.shape[s],n))return!0;return!1}case"union":{for(let s of i.options)if(ko(s,n))return!0;return!1}case"intersection":return ko(i.left,n)||ko(i.right,n);case"tuple":{for(let s of i.items)if(ko(s,n))return!0;return!!(i.rest&&ko(i.rest,n))}case"record":return ko(i.keyType,n)||ko(i.valueType,n);case"map":return ko(i.keyType,n)||ko(i.valueType,n);case"set":return ko(i.valueType,n);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return ko(i.innerType,n);case"lazy":return ko(i.getter(),n);case"default":return ko(i.innerType,n);case"prefault":return ko(i.innerType,n);case"custom":return!1;case"transform":return!0;case"pipe":return ko(i.in,n)||ko(i.out,n);case"success":return!1;case"catch":return!1;default:}throw new Error(`Unknown schema type: ${i.type}`)}function Nxt(e,t){let n={type:"object",get shape(){return zr.assignProp(this,"shape",{...e}),this.shape},...zr.normalizeParams(t)};return new Dcr(n)}function gp(e){return!!e._zod}function pU(e){let t=Object.values(e);if(t.length===0)return Nxt({});let n=t.every(gp),r=t.every(i=>!gp(i));if(n)return Nxt(e);if(r)return Nsr(e);throw new Error("Mixed Zod versions detected in object shape.")}function hU(e,t){return gp(e)?OTe(e,t):e.safeParse(t)}async function U_e(e,t){return gp(e)?await NTe(e,t):await e.safeParseAsync(t)}function NU(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 cU(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 pU(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 F_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 Lcr(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 Ucr(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 GOt(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 WOt(e){return lcr(VOt,e)}function ZOt(e){return dcr(KOt,e)}function JOt(e){return fcr(YOt,e)}function QOt(e){return pcr(XOt,e)}function he(e){return Bar(Bcr,e)}function ui(e){return hcr(tNt,e)}function Cxt(e){return mcr(our,e)}function Tc(e){return gcr(aur,e)}function nNt(e){return ycr(cur,e)}function Io(){return Scr(uur)}function dur(e){return Ecr(lur,e)}function er(e,t){return Ocr(fur,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 rNt(n)}function yp(e,t){return new rNt({type:"object",get shape(){return zr.assignProp(this,"shape",{...e}),this.shape},catchall:Io(),...zr.normalizeParams(t)})}function Vi(e,t){return new iNt({type:"union",options:e,...zr.normalizeParams(t)})}function sNt(e,t,n){return new pur({type:"union",options:t,discriminator:e,...zr.normalizeParams(n)})}function CTe(e,t){return new hur({type:"intersection",left:e,right:t})}function xo(e,t,n){return new mur({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 tTe({type:"enum",entries:n,...zr.normalizeParams(t)})}function yt(e,t){return new gur({type:"literal",values:Array.isArray(e)?e:[e],...zr.normalizeParams(t)})}function oNt(e){return new yur({type:"transform",transform:e})}function gt(e){return new aNt({type:"optional",innerType:e})}function Mxt(e){return new Sur({type:"nullable",innerType:e})}function bur(e,t){return new Eur({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Tur(e,t){return new _ur({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function vur(e,t){return new cNt({type:"nonoptional",innerType:e,...zr.normalizeParams(t)})}function Rur(e,t){return new Aur({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function nTe(e,t){return new wur({type:"pipe",in:e,out:t})}function Iur(e){return new kur({type:"readonly",innerType:e})}function xur(e,t){let n=new Yu({check:"custom",...zr.normalizeParams(t)});return n._zod.check=e,n}function Our(e,t){return Ncr(uNt,e??(()=>!0),t)}function Nur(e,t={}){return Pcr(uNt,e,t)}function Pur(e,t){let n=xur(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 lNt(e,t){return nTe(oNt(e),t)}function sdr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function odr(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 ONt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,ONt(e,t,r,i)}function Zu(e){if(e.target!=="openAi")return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?NNt(t,e.currentPath):t.join("/")}}function hdr(e,t){let n={type:"array"};return e.type?._def&&e.type?._def?.typeName!==Le.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 mdr(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 gdr(){return{type:"boolean"}}function PNt(e,t){return Er(e.type._def,t)}function CNt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>CNt(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 Sdr(e,t)}}function Edr(e,t){return{...Er(e.innerType._def,t),default:e.defaultValue()}}function bdr(e,t){return t.effectStrategy==="input"?Er(e.schema._def,t):Zu(t)}function _dr(e){return{type:"string",enum:Array.from(e.values)}}function vdr(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(Tdr(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 Adr(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 MNt(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":tu(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":tu(n,r.regex,r.message,t);break;case"cuid":tu(n,fp.cuid,r.message,t);break;case"cuid2":tu(n,fp.cuid2,r.message,t);break;case"startsWith":tu(n,RegExp(`^${H_e(r.value,t)}`),r.message,t);break;case"endsWith":tu(n,RegExp(`${H_e(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":{tu(n,RegExp(H_e(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":tu(n,fp.base64url,r.message,t);break;case"jwt":tu(n,fp.jwt,r.message,t);break;case"cidr":{r.version!=="v6"&&tu(n,fp.ipv4Cidr,r.message,t),r.version!=="v4"&&tu(n,fp.ipv6Cidr,r.message,t);break}case"emoji":tu(n,fp.emoji(),r.message,t);break;case"ulid":{tu(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":{tu(n,fp.base64,r.message,t);break}}break}case"nanoid":tu(n,fp.nanoid,r.message,t);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return n}function H_e(e,t){return t.patternStrategy==="escape"?wdr(e):e}function wdr(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 tu(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:Uxt(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",Uxt(t,r),n,r)}function Uxt(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";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 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]})??Zu(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===Le.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=MNt(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}=PNt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function kdr(e,t){if(t.mapStrategy==="record")return DNt(e,t);let n=Er(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Zu(t),r=Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Zu(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function Idr(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 xdr(e){return e.target==="openAi"?void 0:{not:Zu({...e,currentPath:[...e.currentPath,"not"]})}}function Odr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function Ndr(e,t){if(t.target==="openApi3")return Fxt(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in I6&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=I6[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 Fxt(e,t)}function Pdr(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:I6[e.innerType._def.typeName],nullable:!0}:{type:[I6[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 Cdr(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",ONt(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 Mdr(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=Ldr(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=Ddr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function Ddr(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 Ldr(e){try{return e.isOptional()}catch{return!0}}function jdr(e,t){return Er(e.type._def,t)}function Hdr(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 qdr(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 Bdr(e){return{not:Zu(e)}}function Gdr(e){return Zu(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!==ddr)return a}if(r&&!n){let a=Wdr(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=Vdr(e,e.typeName,t),o=typeof s=="function"?Er(s(),t):s;if(o&&Kdr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function Ydr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function jxt(e,t){var n,r,i;return gp(e)?Ccr(e,{target:Ydr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):Zdr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function Hxt(e){let t=NU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=GOt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function qxt(e,t){let n=hU(e,t);if(!n.success)throw n.error;return n.data}function Bxt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Xdr(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];Bxt(o)&&Bxt(s)?n[i]={...o,...s}:n[i]=s}return n}function efr(){let e=new Qdr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=$dr.default;return t(e),e}function tfr(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 nfr(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 rfr(e){return!!e&&typeof e=="object"&&LNt in e}function ifr(e){let t=e[LNt];return t?.complete}function ofr(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"),!sfr.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 afr(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 zxt(e){let t=ofr(e);return afr(e,t.warnings),t.isValid}function UNt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function ufr(e){return"_def"in e||"_zod"in e||UNt(e)}function STe(e){return typeof e!="object"||e===null||ufr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(UNt)}function Vxt(e){if(e)return STe(e)?pU(e):e}function lfr(e){let t=NU(e);return t?Object.entries(t).map(([n,r])=>{let i=Lcr(r),s=Ucr(r);return{name:n,description:i,required:!s}}):[]}function JE(e){let t=NU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=GOt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function Wxt(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function dfr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function ffr(e){let t=new yTe({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 pfr({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=Cnr(import.meta.url),_e=rxt(le,"..");c=rxt(_e,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=TTe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:y,disallowedTools:g=[],tools:E,env:S,executable:b=RTe()?"bun":"node",executableArgs:_=[],extraArgs:T={},fallbackModel:A,enableFileCheckpointing:R,forkSession:x,hooks:k,includePartialMessages:N,persistSession:P,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 ie={},Me=new Map;if(K)for(let[le,_e]of Object.entries(K))_e.type==="sdk"&&"instance"in _e?(Me.set(le,_e.instance),ie[le]={type:"sdk",name:le}):ie[le]=_e;let Ae=typeof e=="string",z=new h6({abortController:u,additionalDirectories:l,betas:p,cwd:y,executable:b,executableArgs:_,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:g,tools:E,mcpServers:ie,strictMcpConfig:j,canUseTool:!!h,hooks:!!k,includePartialMessages:N,persistSession:P,plugins:q,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),J={systemPrompt:o,appendSystemPrompt:a,agents:d},oe=new g6(z,Ae,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 hfr(e){return hOt(e)}function mfr(e,t){return osr(e,t)}async function gfr(e,t){let n=[];try{let o=Mtr(n,hOt(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=Dtr(n,r,i);s&&await s}}var Itr,xtr,q_e,Otr,Ntr,Kxt,Xe,Zxt,Ptr,Ctr,Mtr,Dtr,d6,nxt,_n,ur,nb,x6,Ltr,Yxt,Jxt,f6,Utr,Sp,Ftr,jtr,Xxt,Htr,O6,N6,ETe,P6,bTe,qtr,Btr,Gtr,ztr,Vtr,Wtr,Ktr,Ztr,Ytr,Jtr,Xtr,Qtr,$tr,enr,tnr,nnr,rnr,inr,_Te,snr,onr,anr,cnr,Qxt,$xt,unr,lnr,dnr,fnr,pnr,eOt,hnr,mnr,gnr,ynr,Snr,Enr,bnr,_nr,Tnr,vnr,Anr,Rnr,wnr,knr,Inr,xnr,tOt,Onr,Nnr,Pnr,Dnr,jnr,Hnr,qnr,Bnr,vTe,Gnr,p6,nOt,znr,Vnr,aU,Knr,Znr,Ynr,Xnr,Qnr,$nr,ixt,trr,rOt,rrr,irr,srr,orr,crr,urr,P_e,sxt,drr,frr,prr,mrr,grr,yrr,Srr,Err,brr,_rr,Trr,Arr,wrr,iOt,Irr,mU,Orr,Prr,Crr,Mrr,Drr,Urr,Frr,jrr,qrr,Brr,zrr,oxt,Wrr,Zrr,C6,Jrr,Xrr,$rr,tir,rir,sir,oir,air,cir,lir,fir,M6,mir,yir,Eir,_ir,sOt,Tir,xU,axt,Air,C_e,s6,Cir,HOi,Mir,Lir,uxt,uOt,dOt,qir,Bir,fOt,zir,o6,Wir,Kir,Zir,Yir,Jir,QE,a6,dxt,h6,m6,G_e,g6,y6,ir,pxt,nt,XE,xe,Wd,asr,gU,csr,V_e,nu,Vt,lU,Ku,hxt,mxt,kx,S6,lt,Kd,gxt,Tn,usr,lsr,dsr,fsr,psr,hsr,msr,gsr,ysr,M_e,Ssr,Esr,bsr,_sr,Tsr,vsr,mOt,Asr,Ix,yU,SU,EU,bU,_U,xx,Ox,TU,eb,sm,vU,tb,Dl,Nx,Kg,W_e,Px,Xg,Z_e,AU,RU,Y_e,Cx,Mx,Dx,Lx,Kv,mp,hp,Qg,Ux,Fx,wU,E6,b6,jx,KOi,Le,ZOi,YOi,JOi,XOi,QOi,$Oi,eNi,tNi,nNi,rNi,iNi,sNi,oNi,aNi,Nsr,cNi,uNi,lNi,dNi,fNi,pNi,hNi,mNi,gNi,yNi,SNi,ENi,bNi,_Ni,TNi,vNi,ANi,RNi,wNi,kNi,Zv,J_e,zr,ITe,bOt,qsr,_Ot,Bsr,vOt,zsr,Q_e,ROt,wOt,j6,kOt,tor,IOt,nor,xOt,OTe,OOt,NTe,ror,ior,sor,oor,aor,cor,uor,lor,yxt,dor,por,mor,gor,yor,Sor,Eor,NOt,bor,_or,POt,Tor,Ror,wor,kor,Ior,xor,Oor,Nor,Yu,MOt,DOt,LOt,Por,Cor,Mor,Dor,Lor,H6,Uor,For,jor,Hor,qor,Bor,Gor,$_e,zor,li,PTe,zi,Vor,Wor,Kor,Zor,Yor,Jor,Xor,Qor,$or,ear,tar,nar,rar,iar,sar,oar,aar,car,uar,lar,far,par,mar,FOt,gar,yar,Sar,Ear,bar,_ar,jOt,HOt,Tar,Aar,Rar,war,kar,Iar,xar,Oar,Nar,Par,Car,Mar,Dar,Lar,Uar,Far,jar,_6,fU,v6,Mcr,Dcr,zOt,VOt,KOt,YOt,XOt,$Ot,INi,q6,Fcr,jcr,Hcr,qcr,ss,eNt,Bcr,os,Gcr,Pxt,u6,zcr,Vcr,Wcr,Kcr,Zcr,Ycr,Jcr,Xcr,Qcr,$cr,eur,tur,nur,rur,iur,sur,tNt,our,aur,cur,uur,lur,fur,rNt,iNt,pur,hur,mur,tTe,gur,yur,aNt,Sur,Eur,_ur,cNt,Aur,wur,kur,uNt,dNt,Cur,Yg,B6,im,fNt,pNt,Mur,MTe,Dur,Ju,Ua,Yv,Zd,Ac,G6,hNt,Dxt,mNt,Lur,gNt,l6,Ut,yNt,Uur,xNi,DTe,Fur,LTe,jur,PU,Hx,SNt,Hur,qur,Bur,Gur,zur,Vur,ENt,Wur,Kur,bNt,UTe,Zur,Yur,FTe,Jur,CU,MU,DU,z6,Xur,A6,jTe,HTe,qTe,BTe,GTe,Qur,$ur,_Nt,TNt,zTe,vNt,Vx,ANt,elr,rTe,tlr,iTe,nlr,VTe,rlr,sTe,ilr,slr,olr,alr,clr,ulr,llr,dlr,flr,plr,oTe,hlr,mlr,aTe,WTe,KTe,ZTe,glr,ylr,Slr,YTe,Elr,blr,_lr,Tlr,vlr,RNt,cTe,Alr,JTe,ONi,Rlr,R6,wlr,w6,klr,wNt,Ilr,xlr,Olr,Nlr,Plr,Clr,Mlr,k6,Dlr,Llr,Ulr,kNt,INt,Flr,jlr,Hlr,qlr,Blr,Glr,zlr,Vlr,Wlr,Klr,Zlr,Ylr,Jlr,Xlr,Qlr,$lr,edr,tdr,uTe,ndr,rdr,idr,lTe,adr,cdr,udr,xNt,ldr,NNi,PNi,CNi,MNi,DNi,LNi,bt,dTe,ddr,Lxt,fdr,pdr,NNt,ydr,Sdr,Tdr,j_e,fp,Rdr,I6,Fxt,Udr,Fdr,zdr,Vdr,Wdr,Kdr,Zdr,Jdr,fTe,Qdr,$dr,pTe,hTe,mTe,LNt,Gxt,sfr,gTe,yTe,cfr,uU,jNt=v(()=>{Itr=Object.create,xtr=Object.getPrototypeOf,q_e=Object.defineProperty,Otr=Object.getOwnPropertyNames,Ntr=Object.prototype.hasOwnProperty,Kxt=(e,t,n)=>{n=e!=null?Itr(xtr(e)):{};let r=t||!e||!e.__esModule?q_e(n,"default",{value:e,enumerable:!0}):n;for(let i of Otr(e))Ntr.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),Zxt=(e,t)=>{for(var n in t)q_e(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},Ptr=Symbol.dispose||Symbol.for("Symbol.dispose"),Ctr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),Mtr=(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[Ctr]),r===void 0&&(r=t[Ptr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},Dtr=(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()},d6=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,b)=>`${S}${b}`,"")}get names(){var E;return(E=this._names)!==null&&E!==void 0?E:this._names=this._items.reduce((S,b)=>(b instanceof n&&(S[b.str]=(S[b.str]||0)+1),S),{})}}e._Code=r,e.nil=new r("");function i(g,...E){let S=[g[0]],b=0;for(;b{Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;var t=d6();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}),_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=d6(),n=nxt(),r=d6();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=nxt();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)=>P(D,H.names),{})}}class h extends p{render(D){return"{"+D._n+super.render(D)+"}"+D._n}}class m extends p{}class y extends h{}y.kind="else";class g 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 y(j):j}if(H)return D===!1?H instanceof g?H:H.nodes:this.nodes.length?this:new g(K(D),H instanceof g?[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&&P(D,this.else.names),D}}g.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 P(super.names,this.iteration.names)}}class b 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 _ 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 P(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&&P(D,this.catch.names),this.finally&&P(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 N{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 g(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 g(D))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(g,y)}_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 ie=this._scope.toName(D);return this._for(new b(ee,ie,H,j),()=>W(ie))}forOf(D,H,j,W=n.varKinds.const){let ee=this._scope.toName(D);if(this.opts.es5){let ie=H instanceof t.Name?H:this.var("_arr",H);return this.forRange("_i",0,(0,t._)`${ie}.length`,Me=>{this.var(ee,(0,t._)`${ie}[${Me}]`),j(ee)})}return this._for(new _("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 _("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 g))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=N;function P(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?P(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,ie)=>(ie instanceof t.Name&&(ie=j(ie)),ie instanceof t._Code?ee.push(...ie._items):ee.push(ie),ee),[]));function j(ee){let ie=H[ee.str];return ie===void 0||D[ee.str]!==1?ee:(delete D[ee.str],ie)}function W(ee){return ee instanceof t._Code&&ee._items.some(ie=>ie instanceof t.Name&&D[ie.str]===1&&H[ie.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=_n(),n=d6();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 N in A)k[N]||_(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,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,N,P,C)=>{let F=P===void 0?N:P instanceof t.Name?(N instanceof t.Name?T(k,N,P):A(k,N,P),P):N instanceof t.Name?(A(k,P,N),N):R(N,P);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} || {}`),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(x=>T.assign((0,t._)`${A}${(0,t.getProperty)(x)}`,!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 b(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=b;function _(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=_}),nb=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}),x6=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=nb();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:b}=y,{gen:_,compositeRule:T,allErrors:A}=b,R=d(y,g,E);S??(T||A)?c(_,R):u(b,(0,t._)`[${R}]`)}e.reportError=i;function s(y,g=e.keywordError,E){let{it:S}=y,{gen:b,compositeRule:_,allErrors:T}=S,A=d(y,g,E);c(b,A),_||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:b,it:_}){if(b===void 0)throw new Error("ajv implementation error");let T=y.name("err");y.forRange("i",b,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,_.errorPath))),y.assign((0,t._)`${T}.schemaPath`,(0,t.str)`${_.errSchemaPath}/${g}`),_.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:b}=y;b.$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:b}=y,_=[p(b,E),h(y,E)];return m(y,g,_),S.object(..._)}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 b=S?g:(0,t.str)`${g}/${y}`;return E&&(b=(0,t.str)`${b}${(0,n.getErrorPath)(E,n.Type.Str)}`),[l.schemaPath,b]}function m(y,{params:g,message:E},S){let{keyword:b,data:_,schemaValue:T,it:A}=y,{opts:R,propertyName:x,topSchemaRef:k,schemaPath:N}=A;S.push([l.keyword,b],[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._)`${k}${N}`],[r.default.data,_]),x&&S.push([l.propertyName,x])}}),Ltr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=x6(),n=_n(),r=nb(),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)}}),Yxt=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}),Jxt=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}),f6=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=Yxt(),n=Jxt(),r=x6(),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 b=c(S.type);if(b.includes("null")){if(S.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!b.length&&S.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');S.nullable===!0&&b.push("null")}return b}e.getSchemaTypes=a;function c(S){let b=Array.isArray(S)?S:S?[S]:[];if(b.every(t.isJSONType))return b;throw new Error("type must be JSONType or JSONType[]: "+b.join(","))}e.getJSONTypes=c;function u(S,b){let{gen:_,data:T,opts:A}=S,R=d(b,A.coerceTypes),x=b.length>0&&!(R.length===0&&b.length===1&&(0,n.schemaHasRulesForType)(S,b[0]));if(x){let k=m(b,T,A.strictNumbers,o.Wrong);_.if(k,()=>{R.length?f(S,b,R):g(S)})}return x}e.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(S,b){return b?S.filter(_=>l.has(_)||b==="array"&&_==="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(b,A,R.strictNumbers),()=>T.assign(k,A))),T.if((0,i._)`${k} !== undefined`);for(let P of _)(l.has(P)||P==="array"&&R.coerceTypes==="array")&&N(P);T.else(),g(S),T.endIf(),T.if((0,i._)`${k} !== undefined`,()=>{T.assign(A,k),p(S,k)});function N(P){switch(P){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:b,parentDataProperty:_},T){S.if((0,i._)`${b} !== 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._)`${b} ${A} null`;case"array":R=(0,i._)`Array.isArray(${b})`;break;case"object":R=(0,i._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":R=x((0,i._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":R=x();break;default:return(0,i._)`typeof ${b} ${A} ${S}`}return T===o.Correct?R:(0,i.not)(R);function x(k=i.nil){return(0,i.and)((0,i._)`typeof ${b} == "number"`,k,_?(0,i._)`isFinite(${b})`: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 ${b} != "object"`;A=R.null?x:(0,i._)`!${b} || ${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 y={message:({schema:S})=>`must be ${S}`,params:({schema:S,schemaValue:b})=>typeof S=="string"?(0,i._)`{type: ${S}}`:(0,i._)`{type: ${b}}`};function g(S){let b=E(S);(0,r.reportError)(b,y)}e.reportTypeError=g;function E(S){let{gen:b,data:_,schema:T}=S,A=(0,s.schemaRefOrVal)(S,T,"type");return{gen:b,keyword:"type",data:_,schema:T.type,schemaCode:A,schemaValue:A,parentSchema:T,params:{},it:S}}}),Utr=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)}`)}}),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=_n(),n=ur(),r=nb(),i=ur();function s(S,b){let{gen:_,data:T,it:A}=S;_.if(d(_,T,b,A.opts.ownProperties),()=>{S.setParams({missingProperty:(0,t._)`${b}`},!0),S.error()})}e.checkReportMissingProp=s;function o({gen:S,data:b,it:{opts:_}},T,A){return(0,t.or)(...T.map(R=>(0,t.and)(d(S,b,R,_.ownProperties),(0,t._)`${A} = ${R}`)))}e.checkMissingProp=o;function a(S,b){S.setParams({missingProperty:b},!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._)`${b}${(0,t.getProperty)(_)} !== undefined`;return T?(0,t._)`${A} && ${u(S,b,_)}`:A}e.propertyInData=l;function d(S,b,_,T){let A=(0,t._)`${b}${(0,t.getProperty)(_)} === 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(b=>b!=="__proto__"):[]}e.allSchemaProperties=f;function p(S,b){return f(b).filter(_=>!(0,n.alwaysValidSchema)(S,b[_]))}e.schemaProperties=p;function h({schemaCode:S,data:b,it:{gen:_,topSchemaRef:T,schemaPath:A,errorPath:R},it:x},k,N,P){let C=P?(0,t._)`${S}, ${b}, ${T}${A}`:b,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}, ${_.object(...F)}`;return N!==t.nil?(0,t._)`${k}.call(${N}, ${V})`:(0,t._)`${k}(${V})`}e.callValidateCode=h;var m=(0,t._)`new RegExp`;function y({gen:S,it:{opts:b}},_){let T=b.unicodeRegExp?"u":"",{regExp:A}=b.code,R=A(_,T);return S.scopeValue("pattern",{key:R.toString(),ref:R,code:(0,t._)`${A.code==="new RegExp"?m:(0,i.useFunc)(S,A)}(${_}, ${T})`})}e.usePattern=y;function g(S){let{gen:b,data:_,keyword:T,it:A}=S,R=b.name("valid");if(A.allErrors){let k=b.let("valid",!0);return x(()=>b.assign(k,!1)),k}return b.var(R,!0),x(()=>b.break()),R;function x(k){let N=b.const("len",(0,t._)`${_}.length`);b.forRange("i",0,N,P=>{S.subschema({keyword:T,dataProp:P,dataPropType:n.Type.Num},R),b.if((0,t.not)(R),k)})}}e.validateArray=g;function E(S){let{gen:b,schema:_,keyword:T,it:A}=S;if(!Array.isArray(_))throw new Error("ajv implementation error");if(_.some(N=>(0,n.alwaysValidSchema)(A,N))&&!A.opts.unevaluated)return;let x=b.let("valid",!1),k=b.name("_valid");b.block(()=>_.forEach((N,P)=>{let C=S.subschema({keyword:T,schemaProp:P,compositeRule:!0},k);b.assign(x,(0,t._)`${x} || ${k}`),S.mergeValidEvaluated(C,k)||b.if((0,t.not)(x))})),S.result(x,()=>S.reset(),()=>S.error(!0))}e.validateUnion=E}),Ftr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=_n(),n=nb(),r=Sp(),i=x6();function s(p,h){let{gen:m,keyword:y,schema:g,parentSchema:E,it:S}=p,b=h.macro.call(S.self,g,E,S),_=l(m,y,b);S.opts.validateSchema!==!1&&S.self.validateSchema(b,!0);let T=m.name("valid");p.subschema({schema:b,schemaPath:t.nil,errSchemaPath:`${S.errSchemaPath}/${y}`,topSchemaRef:_,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:b,it:_}=p;u(_,h);let T=!b&&h.compile?h.compile.call(_.self,E,S,_):h.validate,A=l(y,g,T),R=y.let("valid");p.block$data(R,x),p.ok((m=h.valid)!==null&&m!==void 0?m:R);function x(){if(h.errors===!1)P(),h.modifying&&a(p),C(()=>p.error());else{let F=h.async?k():N();h.modifying&&a(p),C(()=>c(p,F))}}function k(){let F=y.let("ruleErrs",null);return y.try(()=>P((0,t._)`await `),V=>y.assign(R,!1).if((0,t._)`${V} instanceof ${_.ValidationError}`,()=>y.assign(F,(0,t._)`${V}.errors`),()=>y.throw(V))),F}function N(){let F=(0,t._)`${A}.errors`;return y.assign(F,null),P(t.nil),F}function P(F=h.async?(0,t._)`await `:t.nil){let V=_.opts.passContext?n.default.this:n.default.self,K=!("compile"in h&&!b||h.schema===!1);y.assign(R,(0,t._)`${F}${(0,r.callValidateCode)(p,A,V,K)}`,h.modifying)}function C(F){var V;y.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: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(b=>!Object.prototype.hasOwnProperty.call(p,b)))throw new Error(`parent schema must have dependencies of ${E}: ${S.join(",")}`);if(g.validateSchema&&!g.validateSchema(p[E])){let _=`keyword "${E}" value is invalid at path "${y}": `+m.errorsText(g.validateSchema.errors);if(h.validateSchema==="log")m.logger.error(_);else throw new Error(_)}}e.validateKeywordUsage=f}),jtr=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: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}),Xxt=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}}),Htr=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 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=ur(),n=Xxt(),r=Htr(),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,b=f(y[E]||g),_={"":b},T=u(S,b,!1),A={},R=new Set;return r(y,{allKeys:!0},(N,P,C,F)=>{if(F===void 0)return;let V=T+P,K=_[F];typeof N[E]=="string"&&(K=$.call(this,N[E])),B.call(this,N.$anchor),B.call(this,N.$dynamicAnchor),_[P]=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(N,M.schema,X):X!==f(V)&&(X[0]==="#"?(x(N,A[X],X),A[X]=N):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(N,P,C){if(P!==void 0&&!n(N,P))throw k(C)}function k(N){return new Error(`reference "${N}" resolves to more than one schema`)}}e.getSchemaRefs=m}),N6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=Ltr(),n=f6(),r=Jxt(),i=f6(),s=Utr(),o=Ftr(),a=jtr(),c=_n(),u=nb(),l=O6(),d=ur(),f=x6();function p(z){if(T(z)&&(R(z),_(z))){g(z);return}h(z,()=>(0,t.topBoolOrEmptySchema)(z))}e.validateFunctionCode=p;function h({gen:z,validateName:J,schema:oe,schemaEnv:le,opts:_e},wt){_e.code.es5?z.func(J,(0,c._)`${u.default.data}, ${u.default.valCxt}`,le.$async,()=>{z.code((0,c._)`"use strict"; ${S(oe,_e)}`),y(z,_e),z.code(wt)}):z.func(J,(0,c._)`${u.default.data}, ${m(_e)}`,le.$async,()=>z.code(S(oe,_e)).code(wt))}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 y(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 g(z){let{schema:J,opts:oe,gen:le}=z;h(z,()=>{oe.$comment&&J.$comment&&F(z),N(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 b(z,J){if(T(z)&&(R(z),_(z))){A(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 A(z,J){let{schema:oe,gen:le,opts:_e}=z;_e.$comment&&oe.$comment&&F(z),P(z),C(z);let wt=le.const("_errs",u.default.errors);x(z,wt),le.var(J,(0,c._)`${wt} === ${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:_e}=z;J.$ref&&le.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(J,_e.RULES)&&_e.logger.warn(`$ref: keywords ignored in schema at path "${oe}"`)}function N(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 P(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:_e}){let wt=oe.$comment;if(_e.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${wt})`);else if(typeof _e.$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(${wt}, ${Ue}, ${Ln}.schema)`)}}function V(z){let{gen:J,schemaEnv:oe,validateName:le,ValidationError:_e,opts:wt}=z;oe.$async?J.if((0,c._)`${u.default.errors} === 0`,()=>J.return(u.default.data),()=>J.throw((0,c._)`new ${_e}(${u.default.vErrors})`)):(J.assign((0,c._)`${le}.errors`,u.default.vErrors),wt.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:_e,schema:wt,data:Ue,allErrors:Ln,opts:lr,self:sn}=z,{RULES:dr}=sn;if(wt.$ref&&(lr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(wt,dr))){_e.block(()=>ee(z,"$ref",dr.all.$ref.definition));return}lr.jtd||X(z,J),_e.block(()=>{for(let Rs of dr.rules)$u(Rs);$u(dr.post)});function $u(Rs){(0,r.shouldUseGroup)(wt,Rs)&&(Rs.type?(_e.if((0,i.checkDataType)(Rs.type,Ue,lr.strictNumbers)),B(z,Rs),J.length===1&&J[0]===Rs.type&&oe&&(_e.else(),(0,i.reportTypeError)(z)),_e.endIf()):B(z,Rs),Ln||_e.if((0,c._)`${u.default.errors} === ${le||0}`))}}function B(z,J){let{gen:oe,schema:le,opts:{useDefaults:_e}}=z;_e&&(0,s.assignDefaults)(z,J.type),oe.block(()=>{for(let wt of J.rules)(0,r.shouldUseRule)(le,wt)&&ee(z,wt.keyword,wt.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 _e=oe[le];if(typeof _e=="object"&&(0,r.shouldUseRule)(z.schema,_e)){let{type:wt}=_e.definition;wt.length&&!wt.some(Ue=>U(J,Ue))&&j(z,`missing type "${wt.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",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:_e,schemaType:wt,def:Ue}=this;le.if((0,c.or)((0,c._)`${_e} === undefined`,oe)),J!==c.nil&&le.assign(J,!0),(wt.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:_e,it:wt}=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,wt.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Ln(){if(_e.validateSchema){let lr=J.scopeValue("validate$data",{ref:_e.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 _e={...this.it,...le,items:void 0,props:void 0};return b(_e,oe),_e}mergeEvaluated(J,oe){let{it:le,gen:_e}=this;le.opts.unevaluated&&(le.props!==!0&&J.props!==void 0&&(le.props=d.mergeEvaluated.props(_e,J.props,le.props,oe)),le.items!==!0&&J.items!==void 0&&(le.items=d.mergeEvaluated.items(_e,J.items,le.items,oe)))}mergeValidEvaluated(J,oe){let{it:le,gen:_e}=this;if(le.opts.unevaluated&&(le.props!==!0||le.items!==!0))return _e.if(oe,()=>this.mergeEvaluated(J,c.Name)),!0}}e.KeywordCxt=W;function ee(z,J,oe,le){let _e=new W(z,oe,J);"code"in oe?oe.code(_e,le):_e.$data&&oe.validate?(0,o.funcKeywordCode)(_e,oe):"macro"in oe?(0,o.macroKeywordCode)(_e,oe):(oe.compile||oe.validate)&&(0,o.funcKeywordCode)(_e,oe)}var ie=/^\/(?:[^~]|~0|~1)*$/,Me=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ae(z,{dataLevel:J,dataNames:oe,dataPathArr:le}){let _e,wt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!ie.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);_e=z,wt=u.default.rootData}else{let sn=Me.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let dr=+sn[1];if(_e=sn[2],_e==="#"){if(dr>=J)throw new Error(lr("property/index",dr));return le[J-dr]}if(dr>J)throw new Error(lr("data",dr));if(wt=oe[J-dr],!_e)return wt}let Ue=wt,Ln=_e.split("/");for(let sn of Ln)sn&&(wt=(0,c._)`${wt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${wt}`);return Ue;function lr(sn,dr){return`Cannot access ${sn} ${dr} levels up, current level is ${J}`}}e.getData=Ae}),ETe=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}),P6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=O6();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}),bTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=_n(),n=ETe(),r=nb(),i=O6(),s=ur(),o=N6();class a{constructor(E){var S;this.refs={},this.dynamicAnchors={};let b;typeof E.schema=="object"&&(b=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)(b?.[E.schemaId||"$id"]),this.schemaPath=E.schemaPath,this.localRefs=E.localRefs,this.meta=E.meta,this.$async=b?.$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:b,lines:_}=this.opts.code,{ownProperties:T}=this.opts,A=new t.CodeGen(this.scope,{es5:b,lines:_,ownProperties:T}),R;g.$async&&(R=A.scopeValue("Error",{ref:n.default,code:(0,t._)`require("ajv/dist/runtime/validation_error").default`}));let x=A.scopeName("validate");g.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:g.schema,code:(0,t.stringify)(g.schema)}:{ref:g.schema}),validateName:x,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)(k),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 F=new Function(`${r.default.self}`,`${r.default.scope}`,N)(this,this.scope.get());if(this.scope.value(x,{ref:F}),F.errors=null,F.schema=g.schema,F.schemaEnv=g,g.$async&&(F.$async=!0),this.opts.code.source===!0&&(F.source={validateName:x,validateCode:P,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 g.validate=F,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 b;S=(0,i.resolveUrl)(this.opts.uriResolver,E,S);let _=g.refs[S];if(_)return _;let T=p.call(this,g,S);if(T===void 0){let A=(b=g.localRefs)===null||b===void 0?void 0:b[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),b=(0,i._getFullPath)(this.opts.uriResolver,S),_=(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)(b),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:x}=this.opts,k=R[x];return k&&(_=(0,i.resolveUrl)(this.opts.uriResolver,_,k)),new a({schema:R,schemaId:x,root:g,baseId:_})}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:b}){var _;if(((_=g.fragment)===null||_===void 0?void 0:_[0])!=="/")return;for(let R of g.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,b,R)}let{schemaId:A}=this.opts;if(T=T||new a({schema:S,schemaId:A,root:b,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}}),Btr=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}}),Gtr=Xe((e,t)=>{var{HEX:n}=Btr(),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="",b=!0;for(let _ of g){if(n[_]===void 0)return;_!=="0"&&b===!0&&(b=!1),b||(S+=_)}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 x(){if(_.length){if(T===!1){let k=s(_);if(k!==void 0)b.push(k);else return S.error=!0,!1}_.length=0}return!0}for(let k=0;k7){S.error=!0;break}k-1>=0&&g[k-1]===":"&&(A=!0);continue}else if(N==="%"){if(!x())break;T=!0}else{_.push(N);continue}}return _.length&&(T?S.zone=_.join(""):R?b.push(_.join("")):b.push(s(_))),S.address=b.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,b=E.address;return E.zone&&(S+="%"+E.zone,b+="%25"+E.zone),{host:S,escapedHost:b,isIPV6:!0}}}function c(g,E){let S="",b=!0,_=g.length;for(let T=0;T<_;T++){let A=g[T];A==="0"&&b?(T+1<=_&&g[T+1]===E||T+1===_)&&(S+=A,b=!1):(A===E?b=!0:b=!1,S+=A)}return S}function u(g,E){let S=0;for(let b=0;b{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(b){return typeof b.secure=="boolean"?b.secure:String(b.scheme).toLowerCase()==="wss"}function s(b){return b.host||(b.error=b.error||"HTTP URIs must have a host."),b}function o(b){let _=String(b.scheme).toLowerCase()==="https";return(b.port===(_?443:80)||b.port==="")&&(b.port=void 0),b.path||(b.path="/"),b}function a(b){return b.secure=i(b),b.resourceName=(b.path||"/")+(b.query?"?"+b.query:""),b.path=void 0,b.query=void 0,b}function c(b){if((b.port===(i(b)?443:80)||b.port==="")&&(b.port=void 0),typeof b.secure=="boolean"&&(b.scheme=b.secure?"wss":"ws",b.secure=void 0),b.resourceName){let[_,T]=b.resourceName.split("?");b.path=_&&_!=="/"?_:void 0,b.query=T,b.resourceName=void 0}return b.fragment=void 0,b}function u(b,_){if(!b.path)return b.error="URN can not be parsed",b;let T=b.path.match(r);if(T){let A=_.scheme||b.scheme||"urn";b.nid=T[1].toLowerCase(),b.nss=T[2];let R=`${A}:${_.nid||b.nid}`,x=S[R];b.path=void 0,x&&(b=x.parse(b,_))}else b.error=b.error||"URN can not be parsed.";return b}function l(b,_){let T=_.scheme||b.scheme||"urn",A=b.nid.toLowerCase(),R=`${T}:${_.nid||A}`,x=S[R];x&&(b=x.serialize(b,_));let k=b,N=b.nss;return k.path=`${A||_.nid}:${N}`,_.skipEscape=!0,k}function d(b,_){let T=b;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(b){let _=b;return _.nss=(b.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},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}),Vtr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Gtr(),a=ztr();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,b){let _=Object.assign({scheme:"null"},b),T=l(y(E,_),y(S,_),_,!0);return f(T,{..._,skipEscape:!0})}function l(E,S,b,_){let T={};return _||(E=y(f(E,b),b),S=y(f(S,b),b)),b=b||{},!b.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,b){return typeof E=="string"?(E=unescape(E),E=f(o(y(E,b),!0),{...b,skipEscape:!0})):typeof E=="object"&&(E=f(o(E,!0),{...b,skipEscape:!0})),typeof S=="string"?(S=unescape(S),S=f(o(y(S,b),!0),{...b,skipEscape:!0})):typeof S=="object"&&(S=f(o(S,!0),{...b,skipEscape:!0})),E.toLowerCase()===S.toLowerCase()}function f(E,S){let b={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:""},_=Object.assign({},S),T=[],A=a[(_.scheme||b.scheme||"").toLowerCase()];A&&A.serialize&&A.serialize(b,_),b.path!==void 0&&(_.skipEscape?b.path=unescape(b.path):(b.path=escape(b.path),b.scheme!==void 0&&(b.path=b.path.split("%3A").join(":")))),_.reference!=="suffix"&&b.scheme&&T.push(b.scheme,":");let R=s(b);if(R!==void 0&&(_.reference!=="suffix"&&T.push("//"),T.push(R),b.path&&b.path.charAt(0)!=="/"&&T.push("/")),b.path!==void 0){let x=b.path;!_.absolutePath&&(!A||!A.absolutePath)&&(x=i(x)),R===void 0&&(x=x.replace(/^\/\//u,"/%2F")),T.push(x)}return b.query!==void 0&&T.push("?",b.query),b.fragment!==void 0&&T.push("#",b.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 b=0,_=E.length;b<_;++b)if(S=E.charCodeAt(b),S>126||p[S])return!0;return!1}var m=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function y(E,S){let b=Object.assign({},S),_={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},T=E.indexOf("%")!==-1,A=!1;b.reference==="suffix"&&(E=(b.scheme?b.scheme+":":"")+"//"+E);let R=E.match(m);if(R){if(_.scheme=R[1],_.userinfo=R[3],_.host=R[4],_.port=parseInt(R[5],10),_.path=R[6]||"",_.query=R[7],_.fragment=R[8],isNaN(_.port)&&(_.port=R[5]),_.host){let k=r(_.host);if(k.isIPV4===!1){let N=n(k.host);_.host=N.host.toLowerCase(),A=N.isIPV6}else _.host=k.host,A=!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",b.reference&&b.reference!=="suffix"&&b.reference!==_.reference&&(_.error=_.error||"URI is not a "+b.reference+" reference.");let x=a[(b.scheme||_.scheme||"").toLowerCase()];if(!b.unicodeSupport&&(!x||!x.unicodeSupport)&&_.host&&(b.domainHost||x&&x.domainHost)&&A===!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(_,b)}else _.error=_.error||"URI can not be parsed.";return _}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}),Wtr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Vtr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),Ktr=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=N6();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=ETe(),i=P6(),s=Yxt(),o=bTe(),a=_n(),c=O6(),u=f6(),l=ur(),d=qtr(),f=Wtr(),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"]),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(G){var M,q,U,D,H,j,W,ee,ie,Me,Ae,z,J,oe,le,_e,wt,Ue,Ln,lr,sn,dr,$u,Rs,ab;let oy=G.strict,Ii=(M=G.code)===null||M===void 0?void 0:M.optimize,bp=Ii===!0||Ii===void 0?1:Ii||0,ay=(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:oy)!==null&&j!==void 0?j:!0,strictNumbers:(ee=(W=G.strictNumbers)!==null&&W!==void 0?W:oy)!==null&&ee!==void 0?ee:!0,strictTypes:(Me=(ie=G.strictTypes)!==null&&ie!==void 0?ie:oy)!==null&&Me!==void 0?Me:"log",strictTuples:(z=(Ae=G.strictTuples)!==null&&Ae!==void 0?Ae:oy)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=G.strictRequired)!==null&&J!==void 0?J:oy)!==null&&oe!==void 0?oe:!1,code:G.code?{...G.code,optimize:bp,regExp:ay}:{optimize:bp,regExp:ay},loopRequired:(le=G.loopRequired)!==null&&le!==void 0?le:E,loopEnum:(_e=G.loopEnum)!==null&&_e!==void 0?_e:E,meta:(wt=G.meta)!==null&&wt!==void 0?wt:!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:($u=G.validateFormats)!==null&&$u!==void 0?$u:!0,unicodeRegExp:(Rs=G.unicodeRegExp)!==null&&Rs!==void 0?Rs:!0,int32range:(ab=G.int32range)!==null&&ab!==void 0?ab:!0,uriResolver:Ar}}class b{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=P(M.logger);let D=M.validateFormats;M.validateFormats=!1,this.RULES=(0,s.getRules)(),_.call(this,y,M,"NOT SUPPORTED"),_.call(this,g,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,Ae){await H.call(this,Me.$schema);let z=this._addSchema(Me,Ae);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(Ae){if(!(Ae instanceof i.default))throw Ae;return W.call(this,Ae),await ee.call(this,Ae.missingSchema),j.call(this,Me)}}function W({missingSchema:Me,missingRef:Ae}){if(this.refs[Me])throw new Error(`AnySchema ${Me} is loaded but ${Ae} cannot be resolved`)}async function ee(Me){let Ae=await ie.call(this,Me);this.refs[Me]||await H.call(this,Ae.$schema),this.refs[Me]||this.addSchema(Ae,Me,q)}async function ie(Me){let Ae=this._loading[Me];if(Ae)return Ae;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:ie}=ee.definition,Me=j[W];ie&&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 ie=c.getSchemaRefs.call(this,M,U);return ee=new o.SchemaEnv({schema:M,schemaId:W,meta:q,baseId:U,localRefs:ie}),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}}}b.ValidationError=r.default,b.MissingRefError=i.default,e.default=b;function _(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 N={log(){},warn(){},error(){}};function P(G){if(G===!1)return N;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]}}}),Ztr=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}),Ytr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=P6(),n=Sp(),r=_n(),i=nb(),s=bTe(),o=ur(),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 _();let b=s.resolveRef.call(E,S,h,f);if(b===void 0)throw new t.default(p.opts.uriResolver,h,f);if(b instanceof s.SchemaEnv)return T(b);return A(b);function _(){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 x=c(l,R);u(l,x,R,R.$async)}function A(R){let x=d.scopeValue("schema",g.code.source===!0?{ref:R,code:(0,r.stringify)(R)}:{ref:R}),k=d.name("valid"),N=l.subschema({schema:R,dataTypes:[],schemaPath:r.nil,topSchemaRef:x,errSchemaPath:f},k);l.mergeEvaluated(N),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:y,schemaEnv:g,opts:E}=m,S=E.passContext?i.default.this:r.nil;p?b():_();function b(){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)},x=>{h.if((0,r._)`!(${x} instanceof ${m.ValidationError})`,()=>h.throw(x)),T(x),y||h.assign(R,!1)}),l.ok(R)}function _(){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 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(k&&!k.dynamicItems)k.items!==void 0&&(m.items=o.mergeEvaluated.items(h,k.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}),Jtr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Ztr(),n=Ytr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),Xtr=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}),Qtr=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}),$tr=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=$tr(),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}),tnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),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}),nnr=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}),rnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),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():y(),p.strictRequired){let S=o.parentSchema.properties,{definedProperties:b}=o.it;for(let _ of c)if(S?.[_]===void 0&&!b.has(_)){let T=f.schemaEnv.baseId+f.errSchemaPath,A=`required property "${_}" 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 b=a.let("valid",!0);o.block$data(b,()=>E(S,b)),o.ok(b)}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,b){o.setParams({missingProperty:S}),a.forOf(S,u,()=>{a.assign(b,(0,t.propertyInData)(a,l,S,p.ownProperties)),a.if((0,n.not)(b),()=>{o.error(),a.break()})},n.nil)}}};e.default=s}),inr=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}),_Te=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Xxt();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),snr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=f6(),n=_n(),r=ur(),i=_Te(),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 _=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`,()=>(E()?S:b)(_,T))}function E(){return y.length>0&&!y.some(_=>_==="object"||_==="array")}function S(_,T){let A=c.name("item"),R=(0,t.checkDataTypes)(y,A,h.opts.strictNumbers,t.DataType.Wrong),x=c.const("indices",(0,n._)`{}`);c.for((0,n._)`;${_}--;`,()=>{c.let(A,(0,n._)`${u}[${_}]`),c.if(R,(0,n._)`continue`),y.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}] = ${_}`)})}function b(_,T){let A=(0,r.useFunc)(c,i.default),R=c.name("outer");c.label(R).for((0,n._)`;${_}--;`,()=>c.for((0,n._)`${T} = ${_}; ${T}--;`,()=>c.if((0,n._)`${A}(${u}[${_}], ${u}[${T}])`,()=>{a.error(),c.assign(m,!1).break(R)})))}}};e.default=o}),onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=_Te(),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}),anr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=_Te(),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,_)))}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,b){let _=l[b];return typeof _=="object"&&_!==null?(0,t._)`${m()}(${c}, ${S}[${b}])`:(0,t._)`${c} === ${_}`}}};e.default=s}),cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Xtr(),n=Qtr(),r=enr(),i=tnr(),s=nnr(),o=rnr(),a=inr(),c=snr(),u=onr(),l=anr(),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}),Qxt=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,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}),$xt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=_n(),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;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,b=c.length,_=b===g.minItems&&(b===g.maxItems||g[a]===!1);if(E.strictTuples&&!_){let T=`"${f}" is ${b}-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}),unr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=$xt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),lnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=Sp(),i=Qxt(),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}),dnr=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 b=(0,t._)`${m} >= ${d}`;f!==void 0&&(b=(0,t._)`${b} && ${m} <= ${f}`),s.pass(b);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 b=o.name("_valid"),_=o.let("count",0);E(b,()=>o.if(b,()=>S(_)))}function E(b,_){o.forRange("i",0,m,T=>{s.subschema({keyword:"contains",dataProp:T,dataPropType:n.Type.Num,compositeRule:!0},b),_()})}function S(b){o.code((0,t._)`${b}++`),f===void 0?o.if((0,t._)`${b} >= ${d}`,()=>o.assign(y,!0).break()):(o.if((0,t._)`${b} > ${f}`,()=>o.assign(y,!1).break()),d===1?o.assign(y,!0):o.if((0,t._)`${b} >= ${d}`,()=>o.assign(y,!0)))}}};e.default=i}),fnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=_n(),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}, +]`;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=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 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}),pnr=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}),eOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),n=_n(),r=nb(),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 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?_(A):c.if(S(A),()=>_(A))})}function S(A){let R;if(y.length>8){let x=(0,i.schemaRefOrVal)(p,l.properties,"properties");R=(0,t.isOwnProperty)(c,x,A)}else y.length?R=(0,n.or)(...y.map(x=>(0,n._)`${A} === ${x}`)):R=n.nil;return g.length&&(R=(0,n.or)(R,...g.map(x=>(0,n._)`${(0,t.usePattern)(a,x)}.test(${A})`))),(0,n.not)(R)}function b(A){c.code((0,n._)`delete ${d}[${A}]`)}function _(A){if(m.removeAdditional==="all"||m.removeAdditional&&u===!1){b(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(),b(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}),hnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=N6(),n=Sp(),r=ur(),i=eOt(),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}),mnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),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,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 _ of p)m&&S(_),d.allErrors?b(_):(a.var(y,!0),b(_),a.if(y))}function S(_){for(let T in m)new RegExp(_).test(T)&&(0,r.checkStrictMode)(d,`property ${T} matches pattern ${_} (use allowMatchingProperties)`)}function b(_){a.forIn("key",u,T=>{a.if((0,n._)`${(0,t.usePattern)(o,_)}.test(${T})`,()=>{let A=h.includes(_);A||o.subschema({keyword:"patternProperties",schemaProp:_,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}),gnr=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}),ynr=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}),Snr=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,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}),Enr=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}),bnr=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 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}),_nr=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}),Tnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Qxt(),n=unr(),r=$xt(),i=lnr(),s=dnr(),o=fnr(),a=pnr(),c=eOt(),u=hnr(),l=mnr(),d=gnr(),f=ynr(),p=Snr(),h=Enr(),m=bnr(),y=_nr();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}),vnr=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?y():g();function y(){let E=o.scopeValue("formats",{ref:m.formats,code:f.code.formats}),S=o.const("fDef",(0,t._)`${E}[${l}]`),b=o.let("fType"),_=o.let("format");o.if((0,t._)`typeof ${S} == "object" && !(${S} instanceof RegExp)`,()=>o.assign(b,(0,t._)`${S}.type || "string"`).assign(_,(0,t._)`${S}.validate`),()=>o.assign(b,(0,t._)`"string"`).assign(_,S)),i.fail$data((0,t.or)(T(),A()));function T(){return f.strictSchema===!1?t.nil:(0,t._)`${l} && !${_}`}function A(){let R=h.$async?(0,t._)`(${S}.async ? await ${_}(${a}) : ${_}(${a}))`:(0,t._)`${_}(${a})`,x=(0,t._)`(typeof ${_} == "function" ? ${R} : ${_}.test(${a}))`;return(0,t._)`${_} && ${_} !== true && ${b} === ${s} && !${x}`}}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(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,N=o.scopeValue("formats",{key:u,ref:x,code:k});return typeof x=="object"&&!(x instanceof RegExp)?[x.type||"string",x.validate,(0,t._)`${N}.validate`]:["string",x,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 ${_}(${a})`}return typeof b=="function"?(0,t._)`${_}(${a})`:(0,t._)`${_}.test(${a})`}}}};e.default=r}),Anr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=vnr(),n=[t.default];e.default=n}),Rnr=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"]}),wnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Jtr(),n=cnr(),r=Tnr(),i=Anr(),s=Rnr(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),knr=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={}))}),Inr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=knr(),r=bTe(),i=P6(),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 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 _)u.elseIf((0,t._)`${g} === ${T}`),u.assign(y,S(_[T]));u.else(),c.error(!1,{discrError:n.DiscrError.Mapping,tag:g,tagName:m}),u.endIf()}function S(_){let T=u.name("valid"),A=c.subschema({keyword:"oneOf",schemaProp:_},T);return c.mergeEvaluated(A,t.Name),T}function b(){var _;let T={},A=x(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}}),tOt=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=Ktr(),r=wnr(),i=Inr(),s=xnr(),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=N6();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=ETe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=P6();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),Onr=Xe(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: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(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 C=+P[1],F=+P[2],V=+P[3];return F>=1&&F<=12&&V>=1&&V<=(F===2&&n(C)?29:i[F])}function o(N,P){if(N&&P)return N>P?1:N23||M>59||N&&!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(N,P){if(!(N&&P))return;let C=new Date("2020-01-01T"+N).valueOf(),F=new Date("2020-01-01T"+P).valueOf();if(C&&F)return C-F}function l(N,P){if(!(N&&P))return;let C=a.exec(N),F=a.exec(P);if(C&&F)return N=C[1]+C[2]+C[3],P=F[1]+F[2]+F[3],N>P?1:N=b}function A(N){return Number.isInteger(N)}function R(){return!0}var x=/[^\\]\\Z/;function k(N){if(x.test(N))return!1;try{return new RegExp(N),!0}catch{return!1}}}),Nnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=tOt(),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?y():g();function y(){let S=c.scopeValue("formats",{ref:h.formats,code:p.code.formats}),b=c.const("fmt",(0,n._)`${S}[${m.schemaCode}]`);a.fail$data((0,n.or)((0,n._)`typeof ${b} != "object"`,(0,n._)`${b} instanceof RegExp`,(0,n._)`typeof ${b}.compare != "function"`,E(b)))}function g(){let S=m.schema,b=h.formats[S];if(!b||b===!0)return;if(typeof b!="object"||b instanceof RegExp||typeof b.compare!="function")throw new Error(`"${d}": format "${S}" does not define "compare" function`);let _=c.scopeValue("formats",{key:S,ref:b,code:p.code.formats?(0,n._)`${p.code.formats}${(0,n.getProperty)(S)}`:void 0});a.fail$data(E(_))}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}),Pnr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=Onr(),r=Nnr(),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}),Dnr=50;jnr=typeof global=="object"&&global&&global.Object===Object&&global,Hnr=jnr,qnr=typeof self=="object"&&self&&self.Object===Object&&self,Bnr=Hnr||qnr||Function("return this")(),vTe=Bnr,Gnr=vTe.Symbol,p6=Gnr,nOt=Object.prototype,znr=nOt.hasOwnProperty,Vnr=nOt.toString,aU=p6?p6.toStringTag:void 0;Knr=Wnr,Znr=Object.prototype,Ynr=Znr.toString;Xnr=Jnr,Qnr="[object Null]",$nr="[object Undefined]",ixt=p6?p6.toStringTag:void 0;trr=err;rOt=nrr,rrr="[object AsyncFunction]",irr="[object Function]",srr="[object GeneratorFunction]",orr="[object Proxy]";crr=arr,urr=vTe["__core-js_shared__"],P_e=urr,sxt=(function(){var e=/[^.]+$/.exec(P_e&&P_e.keys&&P_e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();drr=lrr,frr=Function.prototype,prr=frr.toString;mrr=hrr,grr=/[\\^$.*+?()[\]{}|]/g,yrr=/^\[object .+?Constructor\]$/,Srr=Function.prototype,Err=Object.prototype,brr=Srr.toString,_rr=Err.hasOwnProperty,Trr=RegExp("^"+brr.call(_rr).replace(grr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Arr=vrr;wrr=Rrr;iOt=krr,Irr=iOt(Object,"create"),mU=Irr;Orr=xrr;Prr=Nrr,Crr="__lodash_hash_undefined__",Mrr=Object.prototype,Drr=Mrr.hasOwnProperty;Urr=Lrr,Frr=Object.prototype,jrr=Frr.hasOwnProperty;qrr=Hrr,Brr="__lodash_hash_undefined__";zrr=Grr;qx.prototype.clear=Orr;qx.prototype.delete=Prr;qx.prototype.get=Urr;qx.prototype.has=qrr;qx.prototype.set=zrr;oxt=qx;Wrr=Vrr;Zrr=Krr;C6=Yrr,Jrr=Array.prototype,Xrr=Jrr.splice;$rr=Qrr;tir=eir;rir=nir;sir=iir;Bx.prototype.clear=Wrr;Bx.prototype.delete=$rr;Bx.prototype.get=tir;Bx.prototype.has=rir;Bx.prototype.set=sir;oir=Bx,air=iOt(vTe,"Map"),cir=air;lir=uir;fir=dir;M6=pir;mir=hir;yir=gir;Eir=Sir;_ir=bir;Gx.prototype.clear=lir;Gx.prototype.delete=mir;Gx.prototype.get=yir;Gx.prototype.has=Eir;Gx.prototype.set=_ir;sOt=Gx,Tir="Expected a function";ATe.Cache=sOt;xU=ATe,axt=2e3;Air=xU(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}});C_e=15e4,s6=3e4;Cir=cOt("BASH_MAX_OUTPUT_LENGTH"),HOi=cOt("TASK_MAX_OUTPUT_LENGTH"),Mir={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"}}};Lir=Dir();uxt=new Set;uOt=1/0;dOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return lOt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},qir=xU(()=>cxt(process.env.DEBUG)||cxt(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||fOt()||process.argv.some(e=>e.startsWith("--debug="))),Bir=xU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return Air(t)}),fOt=xU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));zir=!1,o6=null;Wir=xU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=pOt(),t=B_e(e),n=aOt(t,"latest");if(Jg().existsSync(t)||Jg().mkdirSync(t),Jg().existsSync(n))try{Jg().unlinkSync(n)}catch{}Jg().symlinkSync(e,n)}catch{}});Kir={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return Fnr(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)}},Zir=Kir;Yir=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],Jir=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],QE=class extends Error{};a6=null,dxt=!1;h6=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||TTe(),this.initialize()}getDefaultExecutable(){return RTe()?"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=Lnr(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:y,permissionPromptToolName:g,continueConversation:E,resume:S,settingSources:b,allowedTools:_=[],disallowedTools:T=[],tools:A,mcpServers:R,strictMcpConfig:x,canUseTool:k,includePartialMessages:N,plugins:P,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(g)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");F.push("--permission-prompt-tool","stdio")}else g&&F.push("--permission-prompt-tool",g);if(E&&F.push("--continue"),S&&F.push("--resume",S),_.length>0&&F.push("--allowedTools",_.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})),b&&F.push("--setting-sources",b.join(",")),x&&F.push("--strict-mcp-config"),m&&F.push("--permission-mode",m),y&&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)}N&&F.push("--include-partial-messages");for(let M of t)F.push("--add-dir",M);if(P&&P.length>0)for(let M of P)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=nsr(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=rsr(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 QE("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 QE("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 QE("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=Unr({input:this.processStdout});try{for await(let n of t)n.trim()&&(yield dOt(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 QE("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)})})}};m6=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})}},G_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?.())}},g6=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new m6;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(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){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(rm(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 QE))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 G_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:isr(),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}})}},y6=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 m6;let n=t.pathToClaudeCodeExecutable;if(!n){let s=ssr(import.meta.url),o=fxt(s,"..");n=fxt(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=TTe();let i=new h6({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(RTe()?"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 g6(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})})(pxt||(pxt={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),XE=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"]),Wd=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()}};Wd.create=e=>new Wd(e);asr=(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}},gU=asr,csr=gU;V_e=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}};nu=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"}),lU=e=>({status:"dirty",value:e}),Ku=e=>({status:"valid",value:e}),hxt=e=>e.status==="aborted",mxt=e=>e.status==="dirty",kx=e=>e.status==="valid",S6=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={}));Kd=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}},gxt=(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 Wd(e.common.issues);return this._error=n,this._error}}};Tn=class{get description(){return this._def.description}_getType(t){return XE(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:XE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new nu,ctx:{common:t.parent.common,data:t.data,parsedType:XE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(S6(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:XE(t)},i=this._parseSync({data:t,path:r.path,parent:r});return gxt(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:XE(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:XE(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(S6(i)?i:Promise.resolve(i));return gxt(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 tb.create(this)}promise(){return Kv.create(this,this._def)}or(t){return Nx.create([this,t],this._def)}and(t){return Px.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 E6({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 b6.create(this,t)}readonly(){return jx.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},usr=/^c[^\s-]{8,}$/i,lsr=/^[0-9a-z]+$/,dsr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,fsr=/^[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,psr=/^[a-z0-9_-]{21}$/i,hsr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,msr=/^[-+]?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)?)??$/,gsr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ysr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ssr=/^(?:(?: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])$/,Esr=/^(?:(?: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])$/,bsr=/^(([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]))$/,_sr=/^(([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])$/,Tsr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,vsr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,mOt="((\\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])))",Asr=new RegExp(`^${mOt}$`);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 Ze(s,{code:xe.invalid_type,expected:nt.string,received:s.parsedType}),Vt}let r=new nu,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),Ze(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)});yU=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 Ze(s,{code:xe.invalid_type,expected:nt.number,received:s.parsedType}),Vt}let r,i=new nu;for(let s of this._def.checks)s.kind==="int"?ir.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),Ze(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),Ze(r,{code:xe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Osr(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ze(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),Ze(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 yU({checks:[],typeName:Le.ZodNumber,coerce:e?.coerce||!1,...ln(e)});SU=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 nu;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ze(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),Ze(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 Ze(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 SU({checks:[],typeName:Le.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});EU=class extends Tn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==nt.boolean){let r=this._getOrReturnCtx(t);return Ze(r,{code:xe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return Ku(t.data)}};EU.create=e=>new EU({typeName:Le.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});bU=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 Ze(s,{code:xe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ze(s,{code:xe.invalid_date}),Vt}let r=new nu,i;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()s.value&&(i=this._getOrReturnCtx(t,i),Ze(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 bU({checks:[],coerce:e?.coerce||!1,typeName:Le.ZodDate,...ln(e)});_U=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ze(r,{code:xe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return Ku(t.data)}};_U.create=e=>new _U({typeName:Le.ZodSymbol,...ln(e)});xx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ze(r,{code:xe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return Ku(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 Ze(r,{code:xe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return Ku(t.data)}};Ox.create=e=>new Ox({typeName:Le.ZodNull,...ln(e)});TU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Ku(t.data)}};TU.create=e=>new TU({typeName:Le.ZodAny,...ln(e)});eb=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Ku(t.data)}};eb.create=e=>new eb({typeName:Le.ZodUnknown,...ln(e)});sm=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ze(n,{code:xe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};sm.create=e=>new sm({typeName:Le.ZodNever,...ln(e)});vU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ze(r,{code:xe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return Ku(t.data)}};vU.create=e=>new vU({typeName:Le.ZodVoid,...ln(e)});tb=class e extends Tn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==nt.array)return Ze(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&&(Ze(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 Kd(n,o,n.path,a)))).then(o=>nu.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new Kd(n,o,n.path,a)));return nu.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)}};tb.create=(e,t)=>new tb({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Le.ZodArray,...ln(t)});Dl=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 Ze(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 Kd(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&&(Ze(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 Kd(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=>nu.mergeObjectSync(r,u)):nu.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 yOt(ir.objectKeys(this.shape))}};Dl.create=(e,t)=>new Dl({shape:()=>e,unknownKeys:"strip",catchall:sm.create(),typeName:Le.ZodObject,...ln(t)});Dl.strictCreate=(e,t)=>new Dl({shape:()=>e,unknownKeys:"strict",catchall:sm.create(),typeName:Le.ZodObject,...ln(t)});Dl.lazycreate=(e,t)=>new Dl({shape:e,unknownKeys:"strip",catchall:sm.create(),typeName:Le.ZodObject,...ln(t)});Nx=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 Wd(a.ctx.common.issues));return Ze(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 Wd(c));return Ze(n,{code:xe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Nx.create=(e,t)=>new Nx({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 E6||e instanceof jx?Kg(e.unwrap()):e instanceof Fx?Kg(e._def.innerType):[],W_e=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ze(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}):(Ze(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)})}};Px=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(hxt(s)||hxt(o))return Vt;let a=K_e(s.value,o.value);return a.valid?((mxt(s)||mxt(o))&&n.dirty(),{status:n.value,value:a.data}):(Ze(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}))}};Px.create=(e,t,n)=>new Px({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 Ze(r,{code:xe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ze(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 Kd(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>nu.mergeArray(n,o)):nu.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)})};Z_e=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 Ze(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 Kd(r,a,r.path,a)),value:o._parse(new Kd(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?nu.mergeObjectAsync(n,i):nu.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)})}},AU=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 Ze(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 Kd(r,a,r.path,[u,"key"])),value:s._parse(new Kd(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}}}};AU.create=(e,t,n)=>new AU({valueType:t,keyType:e,typeName:Le.ZodMap,...ln(n)});RU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ze(r,{code:xe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ze(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 Kd(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)}};RU.create=(e,t)=>new RU({valueType:e,minSize:null,maxSize:null,typeName:Le.ZodSet,...ln(t)});Y_e=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 Ze(n,{code:xe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return V_e({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,z_e(),gU].filter(u=>!!u),issueData:{code:xe.invalid_arguments,argumentsError:c}})}function i(a,c){return V_e({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,z_e(),gU].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 Ku(async function(...c){let u=new Wd([]),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 Ku(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Wd([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Wd([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(eb.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(eb.create()),returns:n||eb.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 Ze(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 Ze(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 Ze(n,{received:n.data,code:xe.invalid_enum_value,options:r}),Vt}return Ku(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=yOt;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 Ze(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 Ze(r,{received:r.data,code:xe.invalid_enum_value,options:i}),Vt}return Ku(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 Ze(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 Ku(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=>{Ze(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"?lU(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"?lU(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?Ku(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?Ku(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 S6(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Wd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Wd(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)});wU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ze(r,{code:xe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};wU.create=e=>new wU({typeName:Le.ZodNaN,...ln(e)});E6=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}},b6=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(),lU(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 S6(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)});KOi={object:Dl.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={}));ZOi=Ix.create,YOi=yU.create,JOi=wU.create,XOi=SU.create,QOi=EU.create,$Oi=bU.create,eNi=_U.create,tNi=xx.create,nNi=Ox.create,rNi=TU.create,iNi=eb.create,sNi=sm.create,oNi=vU.create,aNi=tb.create,Nsr=Dl.create,cNi=Dl.strictCreate,uNi=Nx.create,lNi=W_e.create,dNi=Px.create,fNi=Xg.create,pNi=Z_e.create,hNi=AU.create,mNi=RU.create,gNi=Y_e.create,yNi=Cx.create,SNi=Mx.create,ENi=Dx.create,bNi=Lx.create,_Ni=Kv.create,TNi=mp.create,vNi=hp.create,ANi=Qg.create,RNi=mp.createWithPreprocess,wNi=b6.create,kNi=Object.freeze({status:"aborted"});Zv=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},J_e={};zr={};Zxt(zr,{unwrapMessage:()=>dU,stringifyPrimitive:()=>xTe,required:()=>Jsr,randomString:()=>jsr,propertyKeyTypes:()=>_Ot,promiseAllObject:()=>Fsr,primitiveTypes:()=>Bsr,prefixIssues:()=>$E,pick:()=>Vsr,partial:()=>Ysr,optionalKeys:()=>TOt,omit:()=>Wsr,numKeys:()=>Hsr,nullish:()=>L6,normalizeParams:()=>Ht,merge:()=>Zsr,jsonStringifyReplacer:()=>SOt,joinValues:()=>X_e,issue:()=>AOt,isPlainObject:()=>IU,isObject:()=>kU,getSizableOrigin:()=>Xsr,getParsedType:()=>qsr,getLengthableOrigin:()=>F6,getEnumValues:()=>wTe,getElementAtPath:()=>Usr,floatSafeRemainder:()=>EOt,finalizeIssue:()=>ey,extend:()=>Ksr,escapeRegex:()=>zx,esc:()=>Rx,defineLazy:()=>ki,createTransparentProxy:()=>Gsr,clone:()=>ty,cleanRegex:()=>U6,cleanEnum:()=>Qsr,captureStackTrace:()=>ITe,cached:()=>D6,assignProp:()=>kTe,assertNotEqual:()=>Csr,assertNever:()=>Dsr,assertIs:()=>Msr,assertEqual:()=>Psr,assert:()=>Lsr,allowsEval:()=>bOt,aborted:()=>wx,NUMBER_FORMAT_RANGES:()=>vOt,Class:()=>Q_e,BIGINT_FORMAT_RANGES:()=>zsr});ITe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};bOt=D6(()=>{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}`)}},_Ot=new Set(["string","number","symbol"]),Bsr=new Set(["string","number","bigint","boolean","symbol","undefined"]);vOt={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]},zsr={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};Q_e=class{constructor(...t){}},ROt=(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,SOt,2)},enumerable:!0})},wOt=ge("$ZodError",ROt),j6=ge("$ZodError",ROt,{Parent:Error});kOt=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 Zv;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ey(c,s,$g())));throw ITe(a,i?.callee),a}return o.value},tor=kOt(j6),IOt=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 ITe(a,i?.callee),a}return o.value},nor=IOt(j6),xOt=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 Zv;return s.issues.length?{success:!1,error:new(e??wOt)(s.issues.map(o=>ey(o,i,$g())))}:{success:!0,data:s.value}},OTe=xOt(j6),OOt=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}},NTe=OOt(j6),ror=/^[cC][^\s-]{8,}$/,ior=/^[0-9a-z]+$/,sor=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,oor=/^[0-9a-vA-V]{20}$/,aor=/^[A-Za-z0-9]{27}$/,cor=/^[a-zA-Z0-9_-]{21}$/,uor=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,lor=/^([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})$/,yxt=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)$/,dor=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,por="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";mor=/^(?:(?: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])$/,gor=/^(([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})$/,yor=/^((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])$/,Sor=/^(([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])$/,Eor=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,NOt=/^[A-Za-z0-9_-]*$/,bor=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,_or=/^\+(?:[0-9]){6,14}[0-9]$/,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])))",Tor=new RegExp(`^${POt}$`);Ror=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},wor=/^\d+$/,kor=/^-?\d+(?:\.\d+)?/i,Ior=/true|false/i,xor=/null/i,Oor=/^[^A-Z]*$/,Nor=/^[^a-z]*$/,Yu=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),MOt={number:"number",bigint:"bigint",object:"date"},DOt=ge("$ZodCheckLessThan",(e,t)=>{Yu.init(e,t);let n=MOt[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{Yu.init(e,t);let n=MOt[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})}}),Por=ge("$ZodCheckMultipleOf",(e,t)=>{Yu.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):EOt(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})}}),Cor=ge("$ZodCheckNumberFormat",(e,t)=>{Yu.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=vOt[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=wor)}),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})}}),Mor=ge("$ZodCheckMaxLength",(e,t)=>{Yu.init(e,t),e._zod.when=n=>{let r=n.value;return!L6(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=F6(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Dor=ge("$ZodCheckMinLength",(e,t)=>{Yu.init(e,t),e._zod.when=n=>{let r=n.value;return!L6(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=F6(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Lor=ge("$ZodCheckLengthEquals",(e,t)=>{Yu.init(e,t),e._zod.when=n=>{let r=n.value;return!L6(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=F6(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})}}),H6=ge("$ZodCheckStringFormat",(e,t)=>{var n,r;Yu.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=()=>{})}),Uor=ge("$ZodCheckRegex",(e,t)=>{H6.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})}}),For=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Oor),H6.init(e,t)}),jor=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Nor),H6.init(e,t)}),Hor=ge("$ZodCheckIncludes",(e,t)=>{Yu.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)=>{Yu.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})}}),Bor=ge("$ZodCheckEndsWith",(e,t)=>{Yu.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})}}),Gor=ge("$ZodCheckOverwrite",(e,t)=>{Yu.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),$_e=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}),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 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(` -`))}},zor={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=zor;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 Zv;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 Zv;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=OTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return NTe(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),PTe=ge("$ZodString",(e,t)=>{li.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Ror(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)=>{H6.init(e,t),PTe.init(e,t)}),Vor=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=lor),zi.init(e,t)}),Wor=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=yxt(r))}else t.pattern??(t.pattern=yxt());zi.init(e,t)}),Kor=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=dor),zi.init(e,t)}),Zor=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:bor.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})}}}),Yor=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=hor()),zi.init(e,t)}),Jor=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=cor),zi.init(e,t)}),Xor=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=ror),zi.init(e,t)}),Qor=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ior),zi.init(e,t)}),$or=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=sor),zi.init(e,t)}),ear=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=oor),zi.init(e,t)}),tar=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=aor),zi.init(e,t)}),nar=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Aor(t)),zi.init(e,t)}),rar=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Tor),zi.init(e,t)}),iar=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=vor(t)),zi.init(e,t)}),sar=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=uor),zi.init(e,t)}),oar=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=mor),zi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),aar=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=gor),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})}}}),car=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=yor),zi.init(e,t)}),uar=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Sor),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})}}});lar=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Eor),zi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{UOt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});far=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=NOt),zi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{dar(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),par=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=_or),zi.init(e,t)});mar=ge("$ZodJWT",(e,t)=>{zi.init(e,t),e._zod.check=n=>{har(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),FOt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??kor,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}}),gar=ge("$ZodNumber",(e,t)=>{Cor.init(e,t),FOt.init(e,t)}),yar=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=Ior,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}}),Sar=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=xor,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}}),Ear=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),bar=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)});_ar=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;oSxt(u,n,o))):Sxt(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});jOt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=D6(()=>{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=TOt(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 $_e(["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),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 b=Rx(E);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[${b}] === undefined) { - if (${b} in input) { - newResult[${b}] = undefined; + if (input[${E}] === undefined) { + if (${E} in input) { + newResult[${E}] = undefined; } } else { payload.issues = payload.issues.concat( ${S}.issues.map((iss) => ({ ...iss, - path: iss.path ? [${b}, ...iss.path] : [${b}], + path: iss.path ? [${E}, ...iss.path] : [${E}], })) ); } } else if (${S}.value === undefined) { - if (${b} in input) newResult[${b}] = undefined; + if (${E} in input) newResult[${E}] = undefined; } else { - newResult[${b}] = ${S}.value; + newResult[${E}] = ${S}.value; } - `)}else{let S=m[E];f.write(`const ${S} = ${h(E)};`),f.write(` + `)}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 ? [${Rx(E)}, ...iss.path] : [${Rx(E)}] - })));`),f.write(`newResult[${Rx(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=kU,o=!J_e.jitless,c=o&&bOt.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 b of l.keys){let _=S[b],T=_._zod.run({value:p[b],issues:[]},f),A=_._zod.optin==="optional"&&_._zod.optout==="optional";T instanceof Promise?h.push(T.then(R=>A?Ext(R,d,b,p):c6(R,d,b))):A?Ext(T,d,b,p):c6(T,d,b)}}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 b=g.run({value:p[S],issues:[]},f);b instanceof Promise?h.push(b.then(_=>c6(_,d,S))):c6(b,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}});HOt=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=>U6(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=>bxt(o,n,e,r)):bxt(s,n,e,r)}}),Tar=ge("$ZodDiscriminatedUnion",(e,t)=>{HOt.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=D6(()=>{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(!kU(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)}}),Aar=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])=>_xt(n,c,u)):_xt(n,s,o)}});Rar=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!IU(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(...$E(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...$E(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(...$E(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...$E(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),war=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=wTe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>_Ot.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}}),kar=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}}),Iar=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 Zv;return n.value=i,n}}),xar=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(`^(${U6(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)}),Oar=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(`^(${U6(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)}),Nar=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=>Txt(s,t)):Txt(i,t)}});Par=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))}),Car=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=>vxt(s,e)):vxt(i,e)}});Mar=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)}}),Dar=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=>Axt(s,t,r)):Axt(i,t,r)}});Lar=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(Rxt):Rxt(i)}});Uar=ge("$ZodCustom",(e,t)=>{Yu.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=>wxt(s,n,r,e));wxt(i,n,r,e)}});Far=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 ${Far(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${xTe(r.values[0])}`:`Invalid option: expected one of ${X_e(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":""}: ${X_e(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"}}};_6=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)}};fU=qar();v6=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??fU,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 b=[...E];b.length===1?h.pattern=b[0].source:b.length>1&&(a.schema.allOf=[...b.map(_=>({...this.target==="draft-7"?{type:"string"}:{},pattern:_.source}))])}break}case"number":{let h=p,{minimum:m,maximum:y,format:g,multipleOf:E,exclusiveMaximum:S,exclusiveMinimum:b}=t._zod.bag;typeof g=="string"&&g.includes("int")?h.type="integer":h.type="number",typeof b=="number"&&(h.exclusiveMinimum=b),typeof m=="number"&&(h.minimum=m,typeof b=="number"&&(b>=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=wTe(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"&&ko(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 ? [${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 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.")}}};Mcr=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)=>tor(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>OTe(e,n,r),e.parseAsync=async(n,r)=>nor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>NTe(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)}),Dcr=ge("ZodMiniObject",(e,t)=>{jOt.init(e,t),Mcr.init(e,t),zr.defineLazy(e,"shape",()=>t.shape)});zOt={};Zxt(zOt,{time:()=>JOt,duration:()=>QOt,datetime:()=>WOt,date:()=>ZOt,ZodISOTime:()=>YOt,ZodISODuration:()=>XOt,ZodISODateTime:()=>VOt,ZodISODate:()=>KOt});VOt=ge("ZodISODateTime",(e,t)=>{nar.init(e,t),os.init(e,t)});KOt=ge("ZodISODate",(e,t)=>{rar.init(e,t),os.init(e,t)});YOt=ge("ZodISOTime",(e,t)=>{iar.init(e,t),os.init(e,t)});XOt=ge("ZodISODuration",(e,t)=>{sar.init(e,t),os.init(e,t)});$Ot=(e,t)=>{wOt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>eor(e,n)},flatten:{value:n=>$sr(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},INi=ge("ZodError",$Ot),q6=ge("ZodError",$Ot,{Parent:Error}),Fcr=kOt(q6),jcr=IOt(q6),Hcr=xOt(q6),qcr=OOt(q6),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)=>Fcr(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Hcr(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(Nur(n,r)),e.superRefine=n=>e.check(Pur(n)),e.overwrite=n=>e.check(OU(n)),e.optional=()=>gt(e),e.nullable=()=>Mxt(e),e.nullish=()=>gt(Mxt(e)),e.nonoptional=n=>vur(e,n),e.array=()=>er(e),e.or=n=>Vi([e,n]),e.and=n=>CTe(e,n),e.transform=n=>nTe(e,oNt(n)),e.default=n=>bur(e,n),e.prefault=n=>Tur(e,n),e.catch=n=>Rur(e,n),e.pipe=n=>nTe(e,n),e.readonly=()=>Iur(e),e.describe=n=>{let r=e.clone();return fU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return fU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return fU.get(e);let r=e.clone();return fU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),eNt=ge("_ZodString",(e,t)=>{PTe.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(bcr(...r)),e.includes=(...r)=>e.check(vcr(...r)),e.startsWith=(...r)=>e.check(Acr(...r)),e.endsWith=(...r)=>e.check(Rcr(...r)),e.min=(...r)=>e.check(T6(...r)),e.max=(...r)=>e.check(qOt(...r)),e.length=(...r)=>e.check(BOt(...r)),e.nonempty=(...r)=>e.check(T6(1,...r)),e.lowercase=r=>e.check(_cr(r)),e.uppercase=r=>e.check(Tcr(r)),e.trim=()=>e.check(kcr()),e.normalize=(...r)=>e.check(wcr(...r)),e.toLowerCase=()=>e.check(Icr()),e.toUpperCase=()=>e.check(xcr())}),Bcr=ge("ZodString",(e,t)=>{PTe.init(e,t),eNt.init(e,t),e.email=n=>e.check(Gar(Gcr,n)),e.url=n=>e.check(Zar(zcr,n)),e.jwt=n=>e.check(ucr(sur,n)),e.emoji=n=>e.check(Yar(Vcr,n)),e.guid=n=>e.check(kxt(Pxt,n)),e.uuid=n=>e.check(zar(u6,n)),e.uuidv4=n=>e.check(Var(u6,n)),e.uuidv6=n=>e.check(War(u6,n)),e.uuidv7=n=>e.check(Kar(u6,n)),e.nanoid=n=>e.check(Jar(Wcr,n)),e.guid=n=>e.check(kxt(Pxt,n)),e.cuid=n=>e.check(Xar(Kcr,n)),e.cuid2=n=>e.check(Qar(Zcr,n)),e.ulid=n=>e.check($ar(Ycr,n)),e.base64=n=>e.check(ocr(nur,n)),e.base64url=n=>e.check(acr(rur,n)),e.xid=n=>e.check(ecr(Jcr,n)),e.ksuid=n=>e.check(tcr(Xcr,n)),e.ipv4=n=>e.check(ncr(Qcr,n)),e.ipv6=n=>e.check(rcr($cr,n)),e.cidrv4=n=>e.check(icr(eur,n)),e.cidrv6=n=>e.check(scr(tur,n)),e.e164=n=>e.check(ccr(iur,n)),e.datetime=n=>e.check(WOt(n)),e.date=n=>e.check(ZOt(n)),e.time=n=>e.check(JOt(n)),e.duration=n=>e.check(QOt(n))});os=ge("ZodStringFormat",(e,t)=>{zi.init(e,t),eNt.init(e,t)}),Gcr=ge("ZodEmail",(e,t)=>{Kor.init(e,t),os.init(e,t)}),Pxt=ge("ZodGUID",(e,t)=>{Vor.init(e,t),os.init(e,t)}),u6=ge("ZodUUID",(e,t)=>{Wor.init(e,t),os.init(e,t)}),zcr=ge("ZodURL",(e,t)=>{Zor.init(e,t),os.init(e,t)}),Vcr=ge("ZodEmoji",(e,t)=>{Yor.init(e,t),os.init(e,t)}),Wcr=ge("ZodNanoID",(e,t)=>{Jor.init(e,t),os.init(e,t)}),Kcr=ge("ZodCUID",(e,t)=>{Xor.init(e,t),os.init(e,t)}),Zcr=ge("ZodCUID2",(e,t)=>{Qor.init(e,t),os.init(e,t)}),Ycr=ge("ZodULID",(e,t)=>{$or.init(e,t),os.init(e,t)}),Jcr=ge("ZodXID",(e,t)=>{ear.init(e,t),os.init(e,t)}),Xcr=ge("ZodKSUID",(e,t)=>{tar.init(e,t),os.init(e,t)}),Qcr=ge("ZodIPv4",(e,t)=>{oar.init(e,t),os.init(e,t)}),$cr=ge("ZodIPv6",(e,t)=>{aar.init(e,t),os.init(e,t)}),eur=ge("ZodCIDRv4",(e,t)=>{car.init(e,t),os.init(e,t)}),tur=ge("ZodCIDRv6",(e,t)=>{uar.init(e,t),os.init(e,t)}),nur=ge("ZodBase64",(e,t)=>{lar.init(e,t),os.init(e,t)}),rur=ge("ZodBase64URL",(e,t)=>{far.init(e,t),os.init(e,t)}),iur=ge("ZodE164",(e,t)=>{par.init(e,t),os.init(e,t)}),sur=ge("ZodJWT",(e,t)=>{mar.init(e,t),os.init(e,t)}),tNt=ge("ZodNumber",(e,t)=>{FOt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check(xxt(r,i)),e.gte=(r,i)=>e.check(L_e(r,i)),e.min=(r,i)=>e.check(L_e(r,i)),e.lt=(r,i)=>e.check(Ixt(r,i)),e.lte=(r,i)=>e.check(D_e(r,i)),e.max=(r,i)=>e.check(D_e(r,i)),e.int=r=>e.check(Cxt(r)),e.safe=r=>e.check(Cxt(r)),e.positive=r=>e.check(xxt(0,r)),e.nonnegative=r=>e.check(L_e(0,r)),e.negative=r=>e.check(Ixt(0,r)),e.nonpositive=r=>e.check(D_e(0,r)),e.multipleOf=(r,i)=>e.check(Oxt(r,i)),e.step=(r,i)=>e.check(Oxt(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});our=ge("ZodNumberFormat",(e,t)=>{gar.init(e,t),tNt.init(e,t)});aur=ge("ZodBoolean",(e,t)=>{yar.init(e,t),ss.init(e,t)});cur=ge("ZodNull",(e,t)=>{Sar.init(e,t),ss.init(e,t)});uur=ge("ZodUnknown",(e,t)=>{Ear.init(e,t),ss.init(e,t)});lur=ge("ZodNever",(e,t)=>{bar.init(e,t),ss.init(e,t)});fur=ge("ZodArray",(e,t)=>{_ar.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(T6(n,r)),e.nonempty=n=>e.check(T6(1,n)),e.max=(n,r)=>e.check(qOt(n,r)),e.length=(n,r)=>e.check(BOt(n,r)),e.unwrap=()=>e.element});rNt=ge("ZodObject",(e,t)=>{jOt.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:Io()}),e.loose=()=>e.clone({...e._zod.def,catchall:Io()}),e.strict=()=>e.clone({...e._zod.def,catchall:dur()}),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(aNt,e,n[0]),e.required=(...n)=>zr.required(cNt,e,n[0])});iNt=ge("ZodUnion",(e,t)=>{HOt.init(e,t),ss.init(e,t),e.options=t.options});pur=ge("ZodDiscriminatedUnion",(e,t)=>{iNt.init(e,t),Tar.init(e,t)});hur=ge("ZodIntersection",(e,t)=>{Aar.init(e,t),ss.init(e,t)});mur=ge("ZodRecord",(e,t)=>{Rar.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});tTe=ge("ZodEnum",(e,t)=>{war.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 tTe({...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 tTe({...t,checks:[],...zr.normalizeParams(i),entries:s})}});gur=ge("ZodLiteral",(e,t)=>{kar.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]}})});yur=ge("ZodTransform",(e,t)=>{Iar.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)}});aNt=ge("ZodOptional",(e,t)=>{xar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});Sur=ge("ZodNullable",(e,t)=>{Oar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});Eur=ge("ZodDefault",(e,t)=>{Nar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});_ur=ge("ZodPrefault",(e,t)=>{Par.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});cNt=ge("ZodNonOptional",(e,t)=>{Car.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});Aur=ge("ZodCatch",(e,t)=>{Mar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});wur=ge("ZodPipe",(e,t)=>{Dar.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});kur=ge("ZodReadonly",(e,t)=>{Lar.init(e,t),ss.init(e,t)});uNt=ge("ZodCustom",(e,t)=>{Uar.init(e,t),ss.init(e,t)});$g(Har());dNt="2025-11-25",Cur=[dNt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Yg="io.modelcontextprotocol/related-task",B6="2.0",im=Our(e=>e!==null&&(typeof e=="object"||typeof e=="function")),fNt=Vi([he(),ui().int()]),pNt=he(),Mur=yp({ttl:Vi([ui(),nNt()]).optional(),pollInterval:ui().optional()}),MTe=yp({taskId:he()}),Dur=yp({progressToken:fNt.optional(),[Yg]:MTe.optional()}),Ju=yp({task:Mur.optional(),_meta:Dur.optional()}),Ua=Ge({method:he(),params:Ju.optional()}),Yv=yp({_meta:Ge({[Yg]:gt(MTe)}).passthrough().optional()}),Zd=Ge({method:he(),params:Yv.optional()}),Ac=yp({_meta:yp({[Yg]:MTe.optional()}).optional()}),G6=Vi([he(),ui().int()]),hNt=Ge({jsonrpc:yt(B6),id:G6,...Ua.shape}).strict(),Dxt=e=>hNt.safeParse(e).success,mNt=Ge({jsonrpc:yt(B6),...Zd.shape}).strict(),Lur=e=>mNt.safeParse(e).success,gNt=Ge({jsonrpc:yt(B6),id:G6,result:Ac}).strict(),l6=e=>gNt.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"})(Ut||(Ut={}));yNt=Ge({jsonrpc:yt(B6),id:G6,error:Ge({code:ui().int(),message:he(),data:gt(Io())})}).strict(),Uur=e=>yNt.safeParse(e).success,xNi=Vi([hNt,mNt,gNt,yNt]),DTe=Ac.strict(),Fur=Yv.extend({requestId:G6,reason:he().optional()}),LTe=Zd.extend({method:yt("notifications/cancelled"),params:Fur}),jur=Ge({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),PU=Ge({icons:er(jur).optional()}),Hx=Ge({name:he(),title:he().optional()}),SNt=Hx.extend({...Hx.shape,...PU.shape,version:he(),websiteUrl:he().optional()}),Hur=CTe(Ge({applyDefaults:Tc().optional()}),xo(he(),Io())),qur=lNt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,CTe(Ge({form:Hur.optional(),url:im.optional()}),xo(he(),Io()).optional())),Bur=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(),Gur=Ge({list:gt(Ge({}).passthrough()),cancel:gt(Ge({}).passthrough()),requests:gt(Ge({tools:gt(Ge({call:gt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),zur=Ge({experimental:xo(he(),im).optional(),sampling:Ge({context:im.optional(),tools:im.optional()}).optional(),elicitation:qur.optional(),roots:Ge({listChanged:Tc().optional()}).optional(),tasks:gt(Bur)}),Vur=Ju.extend({protocolVersion:he(),capabilities:zur,clientInfo:SNt}),ENt=Ua.extend({method:yt("initialize"),params:Vur}),Wur=Ge({experimental:xo(he(),im).optional(),logging:im.optional(),completions:im.optional(),prompts:gt(Ge({listChanged:gt(Tc())})),resources:Ge({subscribe:Tc().optional(),listChanged:Tc().optional()}).optional(),tools:Ge({listChanged:Tc().optional()}).optional(),tasks:gt(Gur)}).passthrough(),Kur=Ac.extend({protocolVersion:he(),capabilities:Wur,serverInfo:SNt,instructions:he().optional()}),bNt=Zd.extend({method:yt("notifications/initialized")}),UTe=Ua.extend({method:yt("ping")}),Zur=Ge({progress:ui(),total:gt(ui()),message:gt(he())}),Yur=Ge({...Yv.shape,...Zur.shape,progressToken:fNt}),FTe=Zd.extend({method:yt("notifications/progress"),params:Yur}),Jur=Ju.extend({cursor:pNt.optional()}),CU=Ua.extend({params:Jur.optional()}),MU=Ac.extend({nextCursor:gt(pNt)}),DU=Ge({taskId:he(),status:vc(["working","input_required","completed","failed","cancelled"]),ttl:Vi([ui(),nNt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:gt(ui()),statusMessage:gt(he())}),z6=Ac.extend({task:DU}),Xur=Yv.merge(DU),A6=Zd.extend({method:yt("notifications/tasks/status"),params:Xur}),jTe=Ua.extend({method:yt("tasks/get"),params:Ju.extend({taskId:he()})}),HTe=Ac.merge(DU),qTe=Ua.extend({method:yt("tasks/result"),params:Ju.extend({taskId:he()})}),BTe=CU.extend({method:yt("tasks/list")}),GTe=MU.extend({tasks:er(DU)}),Qur=Ua.extend({method:yt("tasks/cancel"),params:Ju.extend({taskId:he()})}),$ur=Ac.merge(DU),_Nt=Ge({uri:he(),mimeType:gt(he()),_meta:xo(he(),Io()).optional()}),TNt=_Nt.extend({text:he()}),zTe=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),vNt=_Nt.extend({blob:zTe}),Vx=Ge({audience:er(vc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:zOt.datetime({offset:!0}).optional()}),ANt=Ge({...Hx.shape,...PU.shape,uri:he(),description:gt(he()),mimeType:gt(he()),annotations:Vx.optional(),_meta:gt(yp({}))}),elr=Ge({...Hx.shape,...PU.shape,uriTemplate:he(),description:gt(he()),mimeType:gt(he()),annotations:Vx.optional(),_meta:gt(yp({}))}),rTe=CU.extend({method:yt("resources/list")}),tlr=MU.extend({resources:er(ANt)}),iTe=CU.extend({method:yt("resources/templates/list")}),nlr=MU.extend({resourceTemplates:er(elr)}),VTe=Ju.extend({uri:he()}),rlr=VTe,sTe=Ua.extend({method:yt("resources/read"),params:rlr}),ilr=Ac.extend({contents:er(Vi([TNt,vNt]))}),slr=Zd.extend({method:yt("notifications/resources/list_changed")}),olr=VTe,alr=Ua.extend({method:yt("resources/subscribe"),params:olr}),clr=VTe,ulr=Ua.extend({method:yt("resources/unsubscribe"),params:clr}),llr=Yv.extend({uri:he()}),dlr=Zd.extend({method:yt("notifications/resources/updated"),params:llr}),flr=Ge({name:he(),description:gt(he()),required:gt(Tc())}),plr=Ge({...Hx.shape,...PU.shape,description:gt(he()),arguments:gt(er(flr)),_meta:gt(yp({}))}),oTe=CU.extend({method:yt("prompts/list")}),hlr=MU.extend({prompts:er(plr)}),mlr=Ju.extend({name:he(),arguments:xo(he(),he()).optional()}),aTe=Ua.extend({method:yt("prompts/get"),params:mlr}),WTe=Ge({type:yt("text"),text:he(),annotations:Vx.optional(),_meta:xo(he(),Io()).optional()}),KTe=Ge({type:yt("image"),data:zTe,mimeType:he(),annotations:Vx.optional(),_meta:xo(he(),Io()).optional()}),ZTe=Ge({type:yt("audio"),data:zTe,mimeType:he(),annotations:Vx.optional(),_meta:xo(he(),Io()).optional()}),glr=Ge({type:yt("tool_use"),name:he(),id:he(),input:Ge({}).passthrough(),_meta:gt(Ge({}).passthrough())}).passthrough(),ylr=Ge({type:yt("resource"),resource:Vi([TNt,vNt]),annotations:Vx.optional(),_meta:xo(he(),Io()).optional()}),Slr=ANt.extend({type:yt("resource_link")}),YTe=Vi([WTe,KTe,ZTe,Slr,ylr]),Elr=Ge({role:vc(["user","assistant"]),content:YTe}),blr=Ac.extend({description:gt(he()),messages:er(Elr)}),_lr=Zd.extend({method:yt("notifications/prompts/list_changed")}),Tlr=Ge({title:he().optional(),readOnlyHint:Tc().optional(),destructiveHint:Tc().optional(),idempotentHint:Tc().optional(),openWorldHint:Tc().optional()}),vlr=Ge({taskSupport:vc(["required","optional","forbidden"]).optional()}),RNt=Ge({...Hx.shape,...PU.shape,description:he().optional(),inputSchema:Ge({type:yt("object"),properties:xo(he(),im).optional(),required:er(he()).optional()}).catchall(Io()),outputSchema:Ge({type:yt("object"),properties:xo(he(),im).optional(),required:er(he()).optional()}).catchall(Io()).optional(),annotations:gt(Tlr),execution:gt(vlr),_meta:xo(he(),Io()).optional()}),cTe=CU.extend({method:yt("tools/list")}),Alr=MU.extend({tools:er(RNt)}),JTe=Ac.extend({content:er(YTe).default([]),structuredContent:xo(he(),Io()).optional(),isError:gt(Tc())}),ONi=JTe.or(Ac.extend({toolResult:Io()})),Rlr=Ju.extend({name:he(),arguments:gt(xo(he(),Io()))}),R6=Ua.extend({method:yt("tools/call"),params:Rlr}),wlr=Zd.extend({method:yt("notifications/tools/list_changed")}),w6=vc(["debug","info","notice","warning","error","critical","alert","emergency"]),klr=Ju.extend({level:w6}),wNt=Ua.extend({method:yt("logging/setLevel"),params:klr}),Ilr=Yv.extend({level:w6,logger:he().optional(),data:Io()}),xlr=Zd.extend({method:yt("notifications/message"),params:Ilr}),Olr=Ge({name:he().optional()}),Nlr=Ge({hints:gt(er(Olr)),costPriority:gt(ui().min(0).max(1)),speedPriority:gt(ui().min(0).max(1)),intelligencePriority:gt(ui().min(0).max(1))}),Plr=Ge({mode:gt(vc(["auto","required","none"]))}),Clr=Ge({type:yt("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(YTe).default([]),structuredContent:Ge({}).passthrough().optional(),isError:gt(Tc()),_meta:gt(Ge({}).passthrough())}).passthrough(),Mlr=sNt("type",[WTe,KTe,ZTe]),k6=sNt("type",[WTe,KTe,ZTe,glr,Clr]),Dlr=Ge({role:vc(["user","assistant"]),content:Vi([k6,er(k6)]),_meta:gt(Ge({}).passthrough())}).passthrough(),Llr=Ju.extend({messages:er(Dlr),modelPreferences:Nlr.optional(),systemPrompt:he().optional(),includeContext:vc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:im.optional(),tools:gt(er(RNt)),toolChoice:gt(Plr)}),Ulr=Ua.extend({method:yt("sampling/createMessage"),params:Llr}),kNt=Ac.extend({model:he(),stopReason:gt(vc(["endTurn","stopSequence","maxTokens"]).or(he())),role:vc(["user","assistant"]),content:Mlr}),INt=Ac.extend({model:he(),stopReason:gt(vc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:vc(["user","assistant"]),content:Vi([k6,er(k6)])}),Flr=Ge({type:yt("boolean"),title:he().optional(),description:he().optional(),default:Tc().optional()}),jlr=Ge({type:yt("string"),title:he().optional(),description:he().optional(),minLength:ui().optional(),maxLength:ui().optional(),format:vc(["email","uri","date","date-time"]).optional(),default:he().optional()}),Hlr=Ge({type:vc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),qlr=Ge({type:yt("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),Blr=Ge({type:yt("string"),title:he().optional(),description:he().optional(),oneOf:er(Ge({const:he(),title:he()})),default:he().optional()}),Glr=Ge({type:yt("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),zlr=Vi([qlr,Blr]),Vlr=Ge({type:yt("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({type:yt("string"),enum:er(he())}),default:er(he()).optional()}),Wlr=Ge({type:yt("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()}),Klr=Vi([Vlr,Wlr]),Zlr=Vi([Glr,zlr,Klr]),Ylr=Vi([Zlr,Flr,jlr,Hlr]),Jlr=Ju.extend({mode:yt("form").optional(),message:he(),requestedSchema:Ge({type:yt("object"),properties:xo(he(),Ylr),required:er(he()).optional()})}),Xlr=Ju.extend({mode:yt("url"),message:he(),elicitationId:he(),url:he().url()}),Qlr=Vi([Jlr,Xlr]),$lr=Ua.extend({method:yt("elicitation/create"),params:Qlr}),edr=Yv.extend({elicitationId:he()}),tdr=Zd.extend({method:yt("notifications/elicitation/complete"),params:edr}),uTe=Ac.extend({action:vc(["accept","decline","cancel"]),content:lNt(e=>e===null?void 0:e,xo(he(),Vi([he(),ui(),Tc(),er(he())])).optional())}),ndr=Ge({type:yt("ref/resource"),uri:he()}),rdr=Ge({type:yt("ref/prompt"),name:he()}),idr=Ju.extend({ref:Vi([rdr,ndr]),argument:Ge({name:he(),value:he()}),context:Ge({arguments:xo(he(),he()).optional()}).optional()}),lTe=Ua.extend({method:yt("completion/complete"),params:idr});adr=Ac.extend({completion:yp({values:er(he()).max(100),total:gt(ui().int()),hasMore:gt(Tc())})}),cdr=Ge({uri:he().startsWith("file://"),name:he().optional(),_meta:xo(he(),Io()).optional()}),udr=Ua.extend({method:yt("roots/list")}),xNt=Ac.extend({roots:er(cdr)}),ldr=Zd.extend({method:yt("notifications/roots/list_changed")}),NNi=Vi([UTe,ENt,lTe,wNt,aTe,oTe,rTe,iTe,sTe,alr,ulr,R6,cTe,jTe,qTe,BTe]),PNi=Vi([LTe,FTe,bNt,ldr,A6]),CNi=Vi([DTe,kNt,INt,uTe,xNt,HTe,GTe,z6]),MNi=Vi([UTe,Ulr,$lr,udr,jTe,qTe,BTe]),DNi=Vi([LTe,FTe,xlr,dlr,slr,wlr,_lr,A6,tdr]),LNi=Vi([DTe,Kur,adr,blr,hlr,tlr,nlr,ilr,JTe,Alr,HTe,GTe,z6]),bt=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===Ut.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new dTe(i.elicitations,n)}return new e(t,n,r)}},dTe=class extends bt{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Ut.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:[]}};ddr=Symbol("Let zodToJsonSchema decide on which parser to use"),Lxt={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"},fdr=e=>typeof e=="string"?{...Lxt,name:e}:{...Lxt,...e},pdr=e=>{let t=fdr(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}]))}};NNt=(e,t)=>{let n=0;for(;nEr(e.innerType._def,t);Sdr=(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};Tdr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;j_e=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:()=>(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-_]*$/};Rdr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");I6={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};Fxt=(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};Udr=(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:Zu(t)},n]}:Zu(t)},Fdr=(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)}};zdr=(e,t)=>Er(e.innerType._def,t),Vdr=(e,t,n)=>{switch(t){case Le.ZodString:return MNt(e,n);case Le.ZodNumber:return Cdr(e,n);case Le.ZodObject:return Mdr(e,n);case Le.ZodBigInt:return mdr(e,n);case Le.ZodBoolean:return gdr();case Le.ZodDate:return CNt(e,n);case Le.ZodUndefined:return Bdr(n);case Le.ZodNull:return Odr(n);case Le.ZodArray:return hdr(e,n);case Le.ZodUnion:case Le.ZodDiscriminatedUnion:return Ndr(e,n);case Le.ZodIntersection:return vdr(e,n);case Le.ZodTuple:return qdr(e,n);case Le.ZodRecord:return DNt(e,n);case Le.ZodLiteral:return Adr(e,n);case Le.ZodEnum:return _dr(e);case Le.ZodNativeEnum:return Idr(e);case Le.ZodNullable:return Pdr(e,n);case Le.ZodOptional:return Udr(e,n);case Le.ZodMap:return kdr(e,n);case Le.ZodSet:return Hdr(e,n);case Le.ZodLazy:return()=>e.getter()._def;case Le.ZodPromise:return jdr(e,n);case Le.ZodNaN:case Le.ZodNever:return xdr(n);case Le.ZodEffects:return bdr(e,n);case Le.ZodAny:return Zu(n);case Le.ZodUnknown:return Gdr(n);case Le.ZodDefault:return Edr(e,n);case Le.ZodBranded:return PNt(e,n);case Le.ZodReadonly:return zdr(e,n);case Le.ZodCatch:return ydr(e,n);case Le.ZodPipeline:return Fdr(e,n);case Le.ZodFunction:case Le.ZodVoid:case Le.ZodSymbol:return;default:return(r=>{})(t)}};Wdr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:NNt(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`),Zu(t)):t.$refStrategy==="seen"?Zu(t):void 0}},Kdr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),Zdr=(e,t)=>{let n=pdr(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)??Zu(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)??Zu(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};Jdr=6e4,fTe=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(LTe,n=>{this._oncancel(n)}),this.setNotificationHandler(FTe,n=>{this._onprogress(n)}),this.setRequestHandler(UTe,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 bt(Ut.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 bt(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 bt(Ut.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,[Yg]:{taskId:o}}}}return await i()};return await i()}),this.setRequestHandler(BTe,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 bt(Ut.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(Qur,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new bt(Ut.InvalidParams,`Task not found: ${n.params.taskId}`);if(Wv(i.status))throw new bt(Ut.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 bt(Ut.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof bt?i:new bt(Ut.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),bt.fromError(Ut.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),l6(c)||Uur(c)?this._onresponse(c):Dxt(c)?this._onrequest(c,u):Lur(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=bt.fromError(Ut.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[Yg])===null||o===void 0?void 0:o.taskId;if(u===void 0){let y={jsonrpc:"2.0",id:t.id,error:{code:Ut.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,b;let _={...E,relatedRequestId:t.id};d&&!_.relatedTask&&(_.relatedTask={taskId:d});let T=(b=(S=_.relatedTask)===null||S===void 0?void 0:S.taskId)!==null&&b!==void 0?b:d;return T&&h&&await h.updateTaskStatus(T,"input_required"),await this.request(y,g,_)},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:Ut.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),l6(t))r(t);else{let o=new bt(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(l6(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),l6(t))i(t);else{let o=bt.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 bt?l:new bt(Ut.InternalError,String(l))}}return}let u;try{let l=await this.request(t,z6,r);if(l.task)u=l.task.taskId,yield{type:"taskCreated",task:l.task};else throw new bt(Ut.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 bt(Ut.InternalError,`Task ${u} failed`)}:d.status==="cancelled"&&(yield{type:"error",error:new bt(Ut.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 bt?l:new bt(Ut.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=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++,b={...t,jsonrpc:"2.0",id:S};r?.onprogress&&(this._progressHandlers.set(S,r.onprogress),b.params={...t.params,_meta:{...((p=t.params)===null||p===void 0?void 0:p._meta)||{},progressToken:S}}),a&&(b.params={...b.params,task:a}),c&&(b.params={...b.params,_meta:{...((h=b.params)===null||h===void 0?void 0:h._meta)||{},[Yg]: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(P=>this._onerror(new Error(`Failed to send cancellation: ${P}`)));let N=x instanceof bt?x:new bt(Ut.RequestTimeout,String(x));l(N)};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 N=hU(n,x.result);N.success?u(N.data):l(N.error)}catch(N){l(N)}}}),(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=(y=r?.timeout)!==null&&y!==void 0?y:Jdr,A=()=>_(bt.fromError(Ut.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 x=k=>{let N=this._responseHandlers.get(S);N?N(k):this._onerror(new Error(`Response handler missing for side-channeled request ${S}`))};this._requestResolvers.set(S,x),this._enqueueTaskMessage(R,{type:"request",message:b,timestamp:Date.now()}).catch(k=>{this._cleanupTimeout(S),l(k)})}else this._transport.send(b,{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},HTe,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},GTe,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},$ur,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)||{},[Yg]: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)||{},[Yg]: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)||{},[Yg]:n.relatedTask}}}),await this._transport.send(d,n)}setRequestHandler(t,n){let r=Hxt(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=qxt(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=Hxt(t);this._notificationHandlers.set(r,i=>{let s=qxt(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"&&Dxt(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new bt(Ut.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 bt(Ut.InvalidRequest,"Request cancelled"));return}let u=setTimeout(a,o);n.addEventListener("abort",()=>{clearTimeout(u),c(new bt(Ut.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 bt(Ut.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=A6.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 bt(Ut.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(Wv(a.status))throw new bt(Ut.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=A6.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Wv(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};Qdr=Kxt(tOt(),1),$dr=Kxt(Pnr(),1);pTe=class{constructor(t){this._ajv=t??efr()}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)}}},hTe=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)}};mTe=class extends fTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(w6.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(bNt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(wNt,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=w6.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new hTe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Xdr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=NU(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=hU(R6,d);if(!p.success){let g=p.error instanceof Error?p.error.message:String(p.error);throw new bt(Ut.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:h}=p.data,m=await Promise.resolve(n(d,f));if(h.task){let g=hU(z6,m);if(!g.success){let E=g.error instanceof Error?g.error.message:String(g.error);throw new bt(Ut.InvalidParams,`Invalid task creation result: ${E}`)}return g.data}let y=hU(JTe,m);if(!y.success){let g=y.error instanceof Error?y.error.message:String(y.error);throw new bt(Ut.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;nfr((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&&tfr((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:Cur.includes(n)?n:dNt,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"},DTe)}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},INt,n):this.request({method:"sampling/createMessage",params:t},kNt,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},uTe,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},uTe,n);if(l.action==="accept"&&l.content&&u.requestedSchema)try{let f=this._jsonSchemaValidator.getValidator(u.requestedSchema)(l.content);if(!f.valid)throw new bt(Ut.InvalidParams,`Elicitation response content does not match requested schema: ${f.errorMessage}`)}catch(d){throw d instanceof bt?d:new bt(Ut.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},xNt,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"})}},LNt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(Gxt||(Gxt={}));sfr=/^[A-Za-z0-9._-]{1,128}$/;gTe=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)}},yTe=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 mTe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new gTe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(JE(cTe)),this.server.assertCanSetRequestHandler(JE(R6)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(cTe,()=>({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=cU(n.inputSchema);return i?jxt(i,{strictUnions:!0,pipeStrategy:"input"}):cfr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=cU(n.outputSchema);i&&(r.outputSchema=jxt(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(R6,async(t,n)=>{var r;try{let i=this._registeredTools[t.params.name];if(!i)throw new bt(Ut.InvalidParams,`Tool ${t.params.name} not found`);if(!i.enabled)throw new bt(Ut.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 bt(Ut.InternalError,`Tool ${t.params.name} has taskSupport '${o}' but was not registered with registerToolTask`);if(o==="required"&&!s)throw new bt(Ut.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 bt&&i.code===Ut.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=cU(t.inputSchema),s=i??t.inputSchema,o=await U_e(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=F_e(a);throw new bt(Ut.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 bt(Ut.InvalidParams,`Output validation error: Tool ${r} has an output schema but no structured content was provided`);let i=cU(t.outputSchema),s=await U_e(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=F_e(o);throw new bt(Ut.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 bt(Ut.InternalError,`Task ${u} not found during polling`);l=f}return await r.taskStore.getTaskResult(u)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(JE(lTe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(lTe,async t=>{switch(t.params.ref.type){case"ref/prompt":return sdr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return odr(t),this.handleResourceCompletion(t,t.params.ref);default:throw new bt(Ut.InvalidParams,`Invalid completion reference: ${t.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(t,n){let r=this._registeredPrompts[n.name];if(!r)throw new bt(Ut.InvalidParams,`Prompt ${n.name} not found`);if(!r.enabled)throw new bt(Ut.InvalidParams,`Prompt ${n.name} disabled`);if(!r.argsSchema)return uU;let i=NU(r.argsSchema),s=i?.[t.params.argument.name];if(!rfr(s))return uU;let o=ifr(s);if(!o)return uU;let a=await o(t.params.argument.value,t.params.context);return Wxt(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 uU;throw new bt(Ut.InvalidParams,`Resource template ${t.params.ref.uri} not found`)}let i=r.resourceTemplate.completeCallback(t.params.argument.name);if(!i)return uU;let s=await i(t.params.argument.value,t.params.context);return Wxt(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(JE(rTe)),this.server.assertCanSetRequestHandler(JE(iTe)),this.server.assertCanSetRequestHandler(JE(sTe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(rTe,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(iTe,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(sTe,async(t,n)=>{let r=new URL(t.params.uri),i=this._registeredResources[r.toString()];if(i){if(!i.enabled)throw new bt(Ut.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 bt(Ut.InvalidParams,`Resource ${r} not found`)}),this.setCompletionRequestHandler(),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(JE(oTe)),this.server.assertCanSetRequestHandler(JE(aTe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(oTe,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?lfr(n.argsSchema):void 0}))})),this.server.setRequestHandler(aTe,async(t,n)=>{let r=this._registeredPrompts[t.params.name];if(!r)throw new bt(Ut.InvalidParams,`Prompt ${t.params.name} not found`);if(!r.enabled)throw new bt(Ut.InvalidParams,`Prompt ${t.params.name} disabled`);if(r.argsSchema){let i=cU(r.argsSchema),s=await U_e(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=F_e(c);throw new bt(Ut.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:pU(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=pU(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){zxt(t);let l={title:n,description:r,inputSchema:Vxt(i),outputSchema:Vxt(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"&&zxt(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=pU(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];STe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!STe(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()}},cfr={type:"object",properties:{}};uU={completion:{values:[],hasMore:!1}}});var HNt={};Rr(HNt,{runRepairAgent:()=>yfr});import{existsSync as Jv,readdirSync as XTe,readFileSync as QTe}from"node:fs";import{join as ny}from"node:path";async function yfr(e){let t;try{t=(await Promise.resolve().then(()=>(jNt(),FNt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=Sfr(e),r=Efr(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 Sfr(e){let t=bfr(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) @@ -1465,7 +1463,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 Efr(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 tpr(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(` @@ -1490,7 +1488,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=_fr(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=rpr(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): @@ -1511,66 +1509,66 @@ 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 bfr(e){let t=ny(e,"stages");if(!Jv(t))return"(no stages directory found)";let n=[],r;try{r=XTe(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=QTe(s,"utf8"),{data:a}=(0,V6.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 _fr(e){let t=[],n=ny(e.studioDir,"stages");if(!Jv(n))return t;let r={},i;try{i=XTe(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 XTe(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,V6.default)(QTe(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=QTe(s,"utf8"),{data:a}=(0,V6.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 V6,qNt=v(()=>{"use strict";V6=Se(Xt(),1)});import{execFileSync as ib}from"node:child_process";import{existsSync as Xu,mkdirSync as Tfr,readFileSync as UU,writeFileSync as vfr}from"node:fs";import{join as Oo}from"node:path";function rb(e){let t=zbe(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 BNt(){try{return ib("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function Afr(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 Rfr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(iU(),$Te)),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 LU(e){if(!Xu(e))return{};let t=UU(e,"utf8"),{data:n}=re(t);return n}var GNt,zNt=v(()=>{"use strict";vr();Wbe();xa();Vbe();zd();Q0t();ih();X5();QL();Xc();ze();Kn();To();Gi();vs();GNt={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(Re())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 b=ve(),_=Oo(b,"intents"),T=Xu(_)?Ug(_).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=$ye(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(Re())try{let S=ib("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),b=["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"].find(_=>Xu(Oo(S,_)));if(b){let _=ib("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).filter(Boolean),T=ib("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),A=_.length>0?`Conflicted files: ${_.join(", ")}.`:`(No conflict files reported \u2014 try \`git status\` to inspect, or \`git ${b==="MERGE_HEAD"?"merge":"rebase"} --abort\` to bail out.)`;return ye(JSON.stringify({action:"error",intent:r,error:"mid_merge_blocking_tick",marker:b,branch:T,conflict_files:_,message:`The working tree on '${T}' is mid-merge (${b} 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=upe();if(o.length>0){let S=o.slice(0,50).join(` - `),b=o.length>50?` +`).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+b},null,2))}try{let S=Oo(ve(),"intents",r,"intent.md");if(Xu(S)){let b=LU(S),_=b.studio||"",T=typeof b.external_review_url=="string"&&b.external_review_url.length>0;if(_&&T){let{isGitRepo:A}=await Promise.resolve().then(()=>(ze(),cY));if(A()){xT();let{resolveStudioStages:R}=await Promise.resolve().then(()=>(zd(),VNt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(vr(),qD)),k=R(_),P=x(r,k).filter(C=>C.misrouted&&!C.reconciled&&C.error);if(P.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: -${P.map(C=>`- **Stage ${C.stage}**: ${C.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&&Re())try{xT();let S=Oo(ve(),"intents",r,"intent.md");if(Xu(S)){let _=LU(S).studio||"";if(_){let T=ai(r,_);if(T){let A=`haiku/${r}/${T}`;try{ib("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=npe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=Oo(ve(),"intents",r,"intent.md");if(Xu(S)){let b=LU(S),_=b.studio||"",T=b.mode||"";if(!_||!T){if(!mr().startsWith(`haiku/${r}/`)){let x=gr(r,void 0);if(!x.ok)return WE(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let A=Wfe(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 P=(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: ${P}.`},null,2))}}}}if(e.external_review_url)try{let S=ve(),b=Oo(S,"intents",r,"intent.md");Xu(b)&&De(b,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(pv(),YL));S(r)}catch(S){console.error(`[haiku_run_next] drainPendingDispatches failed: ${S instanceof Error?S.message:String(S)}`)}let c=rb(r);try{let S=BNt(),b=`haiku/${r}/`,_=S.startsWith(b)&&S!==`${b}main`?S.slice(b.length):null;if(_&&!(typeof c.stage=="string"&&c.stage===_)){let T=pe(r),A=Oo(T,"intent.md");if(Xu(A)){let R=LU(A),x=R.studio||"",k=R.mode||"continuous";if(x&&R0(T,x,_,k)){let N=`haiku/${r}/${_}`,P=`haiku/${r}/main`;CD(N,P)||(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 b=vx(c);if(++S>oU)return nm("select_*",S,c,"cap");if(r6(n))return i6("select_*",S,n,c);let _=await Rfr(c.action,r,t);if(!_.ok)return{content:[{type:"text",text:_.message}],isError:!0};if(c=rb(r),(c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage")&&vx(c)===b)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(),YL)),b=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,b,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(),cY));for(let b of c.units)typeof b=="string"&&S({slug:r,stage:c.stage,unit:b,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 b=(Array.isArray(c.dispatches)?c.dispatches.map(_=>typeof _?.role=="string"?_.role:"").filter(_=>_.length>0):typeof c.role=="string"?[c.role]:[]).filter(_=>_!=="user");if(b.length>0)try{let{stashPendingIntentReview:_}=await Promise.resolve().then(()=>(pv(),YL));for(let T of b)_(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=vx(c);if(++u>oU)return nm("close_feedback",u,c,"cap");if(r6(n))return i6("close_feedback",u,n,c);if(S===l)return nm("close_feedback",u,c,"no_progress");l=S;try{let b=c.stage,_=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??{},N=k.unit,P=Array.isArray(k.invalidates)?k.invalidates:[];if(N&&P.length>0){let{applyFeedbackInvalidations:C}=await Promise.resolve().then(()=>(pv(),YL));C({slug:r,stage:b,targetUnit:N,invalidates:P})}if(R.origin==="drift"&&N){let C=Oo(ve(),"intents",r,"stages",b,"units",`${N}.md`);if(Xu(C)){let F=Oo(ve(),"intents",r),{buildReviewRecord:V}=await Promise.resolve().then(()=>(Yf(),hyt)),K=UU(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=rb(r)}catch(b){console.error(`[haiku_run_next] close_feedback execution failed: ${b instanceof Error?b.message:String(b)}`);break}}if(c.action==="seal_intent")try{let S=Oo(ve(),"intents",r,"intent.md");Xu(S)&&(De(S,"sealed_at",new Date().toISOString()),It(`haiku: seal intent ${r}`),c=rb(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=vx(c);if(++d>oU)return nm("complete_stage",d,c,"cap");if(r6(n))return i6("complete_stage",d,n,c);if(S===f)return nm("complete_stage",d,c,"no_progress");f=S;let b=c.stage;if(cye(pe(r),b)){c={action:"record_observations",intent:r,stage:b};break}try{let{isGitRepo:_}=await Promise.resolve().then(()=>(ze(),cY));if(!_()){c=rb(r);continue}try{let x=`haiku/${r}/${b}`;if(BNt()===x){let k=`.haiku/intents/${r}/stages/${b}/observations.md`;ib("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(ib("git",["add","--",k],{stdio:"ignore"}),ib("git",["commit","-m",`haiku: observations for stage ${b}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(vr(),qD)),{withIntentMainLock:A}=await Promise.resolve().then(()=>(j0(),bSt)),R=A(r,()=>T(r,b));if(!R.success)return R.isConflict?{content:[{type:"text",text:`Stage '${b}' completion blocked by conflict: ${R.message}`}],isError:!0}:{content:[{type:"text",text:`Stage '${b}' 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&&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}/${b}\` 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}/${b}\`), then re-run.`}],isError:!0};try{let{invalidateDownstreamApprovals:x}=await Promise.resolve().then(()=>(txt(),ext)),k=pe(r),N=Oo(k,"intent.md");if(Xu(N)){let P=LU(N),C=P.studio||"";if(C){let F=x({intentDir:k,intentFm:P,studio:C,completedStage:b});F.units_cleared>0&&Ke("haiku.revisit.downstream_invalidated",{intent:r,completed_stage:b,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=rb(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=Oo(ve(),"intents",r,"intent.md");if(Xu(S)){let b=gr(r,c.stage);if(!b.ok)return WE(r,c.stage,b,"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),b=UU(Oo(S,"intent.md"),"utf8");p=re(b).data}catch{}let h=p.studio||"",m=S=>{Ex(S);let b=p.drift_cascade_alarm;b&&typeof b=="object"&&!Array.isArray(b)&&Object.keys(b).length>0&&(S.drift_cascade_alarm={stages:Object.keys(b),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 _=z1(r,h,S,pe(r)),T=k5(_),{tell_user:A,next_step:R,...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(()=>(vr(),qD)),b=S({slug:r,stage:c.stage});if(b.createdUrl){try{let _=Oo(ve(),"intents",r,"intent.md");De(_,"external_review_url",b.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: ${b.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 b.compareUrl?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||""} -Engine couldn't open the MR via gh/glab (${b.prError??b.pushError??"no CLI found"}). Surface this URL to the user \u2014 clicking it opens the MR with base \`haiku/${r}/main\` pre-filled: ${b.compareUrl}. After the user pastes the resulting URL, call haiku_run_next { intent: "${r}", external_review_url: "" }.`:c.message=`${c.message||""} +Engine couldn't open the MR via gh/glab (${E.prError??E.pushError??"no CLI found"}). Surface this URL to the user \u2014 clicking it opens the MR with base \`haiku/${r}/main\` pre-filled: ${E.compareUrl}. After the user pastes the resulting URL, call haiku_run_next { intent: "${r}", external_review_url: "" }.`:c.message=`${c.message||""} -${b.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||""} +${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 y=0,g=null;for(;c.action==="gate_review"||c.action==="user_gate";){let S=vx(c);if(++y>oU)return nm("gate_review",y,c,"cap");if(S===g)return nm("gate_review",y,c,"no_progress");g=S;let b=c.stage??"",_=c.action==="user_gate",T=_?c.gate_kind:"",A=_?null:c.next_stage??null;if(_&&T==="approval"&&b)try{let{resolveIntentStages:C}=await Promise.resolve().then(()=>(ns(),Wft)),F=Oo(ve(),"intents",r,"intent.md"),V=Xu(F)?re(UU(F,"utf8")).data:{},K=V.studio||"";if(K){let $=C(V,K),B=$.indexOf(b);B>=0&&B<$.length-1&&(A=$[B+1])}}catch{}let R=_?null:c.next_phase??null;_&&T==="spec"&&(R="execute");let x=_?T==="spec"?"elaborate_to_execute":"stage_gate":c.gate_context||"stage_gate",k=_?"ask":c.gate_type,N=`.haiku/intents/${r}`;i&&qi(i,{event:"gate_review_prepared",intent:r,stage:b,gate_type:k});let P=eve();if(!P){if(_)break;return ye("Gate-review prepare handler not registered \u2014 server.ts wiring is broken. File a bug.")}try{let C=await P(N,k,{gateContext:x,stage:b,nextStage:A,nextPhase:R});Xr(r,e.state_file);let F=$t(C.session_id);if(!(F?.session_type==="review"&&!!F.announced_at))try{Pl(C.session_id,{announced_at:new Date().toISOString()})}catch{}let K=()=>lv(C.session_id)||HL(r);!C.browser_attached&&!K()&&lp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(iU(),$Te)),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=Afr(X);if(G&&new Set(["advance_phase","advance_stage","intent_approved","advance"]).has(G)){c=rb(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:b});try{let X=Oo(process.cwd(),".haiku","logs");Tfr(X,{recursive:!0}),vfr(Oo(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=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: ${b} -phase: ${B} -error: ${F} -${V} +stage: ${E} +phase: ${q} +error: ${L} +${G} --- -`,{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(()=>(qNt(),HNt)),b=ve(),_=Oo(b,"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:_,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 N=gr(r,c.stage||void 0);if(!N.ok)return WE(r,c.stage||void 0,N,"after repair-agent run")}if(k.success&&!k.fallbackUsed){let N=rb(r);if(N.action!=="safe_intent_repair")return Ke("haiku.orchestrator.action",{intent:r,action:N.action}),i&&qi(i,{event:"run_next",intent:r,action:N.action,stage:N.stage,unit:N.unit,hat:N.hat,wave:N.wave}),Xr(r,e.state_file),{content:[{type:"text",text:`**Intent repaired automatically:** ${k.summary} +`,{flag:"a"})}catch{}return Xr(r,e.state_file),q==="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}:q==="await"?{content:[{type:"text",text:`GATE DISCONNECTED: ${L}`}],isError:!0}:{content:[{type:"text",text:`GATE PREPARE FAILED: ${L}. 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(()=>(rNt(),nNt)),E=Te(),_=po(E,"intents",r),R=si(h)?.path;if(!R)return Xr(r,e.state_file),ye(m(c));let A=c.stage||"",x={slug:r,intentDir:_,studio:h,studioDir:R,activeStage:A,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 Zb(r,c.stage||void 0,P,"after repair-agent run")}if(k.success&&!k.fallbackUsed){let P=iy(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=pe(r),b=Oo(S,"intent.md");if(Xu(b)){let _=UU(b,"utf8"),{data:T}=re(_),A=T.studio||"";if(A){let R=ai(r,A);if(R){let x=`haiku/${r}/${R}`,k=DD(r,R);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}else{let x=`haiku/${r}/main`;if(jt(x)&&Z3(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} +`+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} -${E}`:E)}}});import{existsSync as KNt,readFileSync as wfr}from"node:fs";import{join as WNt}from"node:path";function kfr(e){if(!KNt(e))return{};let t=wfr(e,"utf8"),{data:n}=re(t);return n}var Ifr,ZNt,YNt=v(()=>{"use strict";vr();zd();ZE();ji();uo();Yge();ze();To();Gi();Fv();vs();Ifr={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."},ZNt={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,_ge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=ve(),o=WNt(s,"intents",i),a=WNt(o,"intent.md");if(!KNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=kfr(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(()=>(xa(),k0)),p=!!(d(i,u)??""),m=f9.filter(b=>b!=="discrete-hybrid").filter(b=>b==="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 g=(r.options??[]).map(b=>b.toLowerCase());if(g.length>0){let b=g.filter(_=>!m.includes(_));if(b.length>0)return ye(JSON.stringify({error:"invalid_mode_options",message:`Mode option(s) [${b.join(", ")}] are not available for intent '${i}'. Available: ${m.join(", ")}.`}))}let E="";if(g.length===1)E=g[0];else{let _=(g.length===0?[...m]:g).map(A=>({id:A,label:A,description:Ifr[A]??A})),T=await Wu({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: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 b=Fs(u);De(a,"stages",b)}return It(`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 XNt,readFileSync as xfr}from"node:fs";import{join as JNt}from"node:path";function Ofr(e){if(!XNt(e))return{};let t=xfr(e,"utf8"),{data:n}=re(t);return n}var QNt,$Nt=v(()=>{"use strict";vr();zd();ZE();ji();uo();ze();To();Gi();Fv();vs();QNt={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,Tge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=ve(),o=JNt(s,"intents",i),a=JNt(o,"intent.md");if(!XNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Ofr(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(g=>f.find(E=>E.toLowerCase()===g.toLowerCase())).filter(g=>!!g);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 g=await Wu({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 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=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=gr(i,void 0);return y.ok?(De(a,"stages",[m]),It(`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 ${y.message}. Resolve manually and retry.`}],isError:!0}}}});function ePt(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 tPt=v(()=>{"use strict"});import{existsSync as tve,readdirSync as Nfr,readFileSync as Pfr}from"node:fs";import{join as W6}from"node:path";var nPt,rPt=v(()=>{"use strict";vr();zd();ZE();ji();uo();ze();Kn();To();Gi();Fv();vs();tPt();nPt={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,bge,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=ve(),o=W6(s,"intents",i),a=W6(o,"intent.md");if(!tve(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=W6(o,"stages");if(tve(c))for(let h of Nfr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=W6(c,h.name,"state.json");if(tve(m)){let y=UE(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=bI().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(Pfr(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 y=ePt(u,m),g=await Wu({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 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=g.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),It(`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 iPt,readFileSync as Cfr,writeFileSync as Mfr}from"node:fs";import{join as sPt}from"node:path";var nve,oPt,aPt=v(()=>{"use strict";nve=Se(Xt(),1);vr();Sx();ji();uo();ze();Gi();vs();oPt={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,wge,"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=sPt(a,"intents",n);if(!iPt(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=sPt(c,"stages",r,"elaboration.md");if(!iPt(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=Cfr(u,"utf8"),f=(0,nve.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()),Mfr(u,nve.default.stringify(f.content,m)),It(`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 Dfr,mkdirSync as Lfr,writeFileSync as Ufr}from"node:fs";import{join as rve}from"node:path";var cPt,uPt,lPt=v(()=>{"use strict";cPt=Se(Xt(),1);vr();Sx();ji();uo();ze();Gi();vs();uPt={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,Age,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=ve(),o=rve(s,"intents",n);if(!Dfr(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=rve(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};Lfr(a,{recursive:!0});let u=rve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return Ufr(u,cPt.default.stringify(i,d)),Bbe({kind:"stage_elaborate",slug:n,stage:r}),Bbe({kind:"stage_decompose",slug:n,stage:r}),It(`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 dPt,readFileSync as Ffr,writeFileSync as jfr}from"node:fs";import{join as fPt}from"node:path";var ive,pPt,hPt=v(()=>{"use strict";ive=Se(Xt(),1);vr();Sx();ji();uo();ze();Gi();vs();pPt={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,Rge,"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=fPt(a,"intents",n);if(!dPt(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=fPt(c,"stages",r,"elaboration.md");if(!dPt(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=Ffr(u,"utf8"),f=(0,ive.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,ive.default.stringify(f.content,m)),It(`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 sve}from"node:child_process";import{existsSync as FU,readdirSync as mPt,readFileSync as Hfr,rmSync as gPt,statSync as yPt}from"node:fs";import{join as sb}from"node:path";var SPt,EPt=v(()=>{"use strict";vr();ZE();ji();uo();ze();Gi();vs();SPt={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,mge,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=ve(),o=sb(s,"intents",r),a=sb(o,"intent.md");if(!FU(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=sb(o,"stages",i);if(!FU(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=sb(c,m);FU(y)&&u.push(m)}let l=sb(c,"discovery"),d=(()=>{if(!FU(l))return!1;try{return mPt(l).some(m=>{let y=sb(l,m);try{return yPt(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=Re()&&jt(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 Wu({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(Re())try{let m="";try{m=sve("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(m===f){let y=`haiku/${r}/main`,g=pc(),E=jt(y)?y:g;try{sve("git",["checkout",E],{encoding:"utf8",stdio:"pipe"})}catch{sve("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=sb(c,m);FU(y)&&gPt(y,{recursive:!0,force:!0})}if(d)try{for(let m of mPt(l)){if(!m.endsWith(".md"))continue;let y=sb(l,m);try{yPt(y).isFile()&&gPt(y,{force:!0})}catch{}}}catch{}try{let m=Hfr(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);Kh(a,g)}}catch{}if(p)try{gE(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 It(`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 Bfr,writeFileSync as Gfr}from"node:fs";var ove,zfr,bPt,_Pt=v(()=>{"use strict";ove=Se(Xt(),1);vr();ZE();ji();uo();ze();Gi();vs();zfr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],bPt={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:_0,async handle(e,t){let n=Be(e,Kge,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Oa(r,i,s);if(!qfr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=Bfr(o,"utf8"),{data:c,content:u}=(0,ove.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 Wu({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 zfr)delete f[h];Gfr(o,ove.default.stringify(u,f));let p=ype(r,s);return It(`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 $Te={};Rr($Te,{orchestratorToolHandlers:()=>rU});var rU,iU=v(()=>{"use strict";uIt();hIt();f0t();h0t();_0t();A0t();I0t();O0t();C0t();U0t();j0t();q0t();K0t();J0t();zNt();YNt();$Nt();rPt();aPt();lPt();hPt();EPt();_Pt();rU=new Map([cIt,pIt,d0t,p0t,b0t,v0t,k0t,x0t,P0t,L0t,F0t,H0t,W0t,Y0t,GNt,ZNt,QNt,nPt,oPt,uPt,pPt,SPt,bPt].map(e=>[e.name,e]))});function TPt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function WE(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(` @@ -1579,15 +1577,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 vPt(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 APt(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 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 RPt=v(()=>{"use strict";ze();To()});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=Re()?"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 wPt=v(()=>{"use strict";ze()});import{execFileSync as kPt}from"node:child_process";import{existsSync as Xv,readFileSync as Vfr}from"node:fs";import{join as ob}from"node:path";function ave(e,t){if(t)try{let n=DD(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 jU(e){if(!Xv(e))return{};let t=Vfr(e,"utf8"),{data:n}=re(t);return n}function Wfr(e,t){let n=ob(pe(e),"intent.md"),r=jU(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function cve(e,t){RI(e),Y3(e),It(`haiku: pre-stage cleanup for ${e}/${t}`),ave(e,t);let n=Wfr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&jt(r)&&!bl(r,`haiku/${e}/main`)){let i=B9(e,()=>LD(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&&jt(r)){gE(e,n);try{kPt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:va,env:Aa})}catch{}}if(!ipe(e,t)){let i=`haiku/${e}/${t}`;if(jt(i)&&n){let s=ope(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)}Jye(e,t,{trigger:"initial"}),Y3(e),Ke("haiku.stage.started",{intent:e,stage:t}),It(`haiku: start stage ${t}`),ave(e,t),ci(e)}function K1(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function bx(e,t,n){Xye(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),It(`haiku: complete stage ${t}`),ave(e,t),ci(e)}function I5(e,t,n){bx(e,t,"advanced"),cve(e,n),ci(e)}function IPt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function Kfr(e){let t=ob(pe(e),"intent.md");Xv(t)&&(De(t,"completion_review_entered_at",bn()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function Zfr(e,t){if(!Re()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(jt(n)&&!bl(n,r)){let i=B9(e,()=>LD(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(jt(n)&&bl(n,r)){gE(e,t);try{kPt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:va,env:Aa})}catch{}}gr(e,void 0)}function Z1(e,t,n){let r=n?ob(n,"intents",e):pe(e),i=ob(r,"intent.md"),s=Xv(i)?jU(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 Yfr(e,t){let n=t?ob(t,"intents",e):pe(e),r=ob(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 x5(e,t,n){let r=Z1(e,t);if(r.length>0)return Yfr(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=ob(pe(e),"intent.md"),s=Xv(i)?jU(i):{},a=wn(s,t).at(-1)??"";return a&&Zfr(e,a),Kfr(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 O5(e){let t=ob(pe(e),"intent.md");if(Xv(t)){let s=jU(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=tpe(o);c.ok?(De(t,"draft_pr_status","ready"),De(t,"draft_pr_ready_at",bn())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),De(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),It(`haiku: complete intent ${e}`);let n=Xv(t)?jU(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=Spe(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}jD(e),ci(e),rpe(e)}var xPt=v(()=>{"use strict";vr();j0();zd();W9();ze();To();XL()});var VNt={};Rr(VNt,{buildElaboratorInstruction:()=>APt,buildGuardResponse:()=>WE,buildOutputRequirements:()=>dx,buildRunInstructions:()=>z1,cleanupPreExecuteFeedback:()=>Qft,completeOrReviewIntent:()=>x5,computeUnitWaves:()=>HI,currentWaveNumber:()=>qI,enrichActionWithPreview:()=>Ex,findIncompleteStages:()=>Z1,getAwaitGateReviewSession:()=>Kbe,getPrepareGateReview:()=>eve,handleOrchestratorTool:()=>y_e,isStagePreExecute:()=>YD,listUnits:()=>Eg,maybeEscalate:()=>vPt,orchestratorToolDefs:()=>y5,resolveIntentStages:()=>wn,resolveStageHats:()=>bs,resolveStageMetadata:()=>Bpe,resolveStageReview:()=>qpe,resolveStudioFilePath:()=>Lf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>Hpe,runNext:()=>Jfr,runQualityGates:()=>PRt,setGateReviewHandlers:()=>uve,summarizeFeedback:()=>TPt,validateCumulativeInputCoverage:()=>ORt,validateDiscoveryArtifacts:()=>wRt,validateOutputLiveness:()=>NRt,validateStageOutputs:()=>RRt,validateUnitInputs:()=>IRt,validateUnitNaming:()=>kRt,workflowAdvancePhase:()=>K1,workflowAdvanceStage:()=>I5,workflowCompleteStage:()=>bx,workflowGateAsk:()=>IPt,workflowIntentComplete:()=>O5,workflowStartStage:()=>cve,writeReviewFeedbackFiles:()=>p5});function Qfr(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 z1(e,t,n,r){let i=qwt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!Xfr.has(n.action)&&!n.prompt_file)try{let{path:d}=_ft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:Qfr(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(` @@ -1602,29 +1600,29 @@ ${u} ${JSON.stringify(n,null,2)}`),l.join(` -`))}function uve(e){OPt=e.prepare,NPt=e.await}function eve(){return OPt}function Kbe(){return NPt}async function y_e(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=wD(t);if(i)return i;let s=rU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var Jfr,Xfr,OPt,NPt,zd=v(()=>{"use strict";Bwt();Gwt();Vbe();ze();_l();iU();RPt();wPt();ns();E4();h5();xPt();Jfr=$kt,Xfr=new Set(["noop","sealed","error"]);OPt=null,NPt=null});function lve(e){K6.set(e.name,e)}function PPt(){return Array.from(K6.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 CPt(e,t){let n=K6.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 MPt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=K6.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 K6,dve=v(()=>{"use strict";O_();K6=new Map});import{existsSync as DPt,readdirSync as $fr,readFileSync as epr}from"node:fs";import{join as LPt}from"node:path";function UPt(){let e=0;lve({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=LPt(t,"skills");if(!DPt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=$fr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=LPt(n,i.name,"SKILL.md");if(!DPt(s))continue;let o=epr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;lve({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 FPt=v(()=>{"use strict";Ci();ze();dve()});var npr={};async function tpr(){xne();let e=new f2;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 qPt(e){if(HPt)return;HPt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${jPt}ms \u2014 forcing exit`),process.exit(1)},jPt);t.unref();try{await Qv.close(),await hAt(),await yf()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var Qv,jPt,HPt,BPt=v(()=>{"use strict";y8e();_8e();O_();Ci();a5();SAt();ih();Sf();zd();dve();FPt();X5();ji();uo();ze();Qv=new l2({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});sh()||Mi().mcpPrompts&&UPt();Qv.setRequestHandler(Zre,async()=>({prompts:PPt()}));Qv.setRequestHandler(Yre,async e=>CPt(e.params.name,e.params.arguments));Qv.setRequestHandler(rie,async e=>MPt(e.params));Qv.setRequestHandler(eie,async()=>{let e=Mi(),n=[...y5,...aSe,{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:pZ},{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:hZ},{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(iC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=yAt(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 a0t(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(()=>(ih(),E3e));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});uve({prepare:c0t,await:u0t});jPt=1e4,HPt=!1;process.on("SIGINT",()=>{qPt("SIGINT")});process.on("SIGTERM",()=>{qPt("SIGTERM")});tpr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var ry=v(()=>{"use strict"});import{execSync as rpr}from"node:child_process";import{existsSync as HU,mkdirSync as fDi,readdirSync as ipr,readFileSync as GPt,statSync as pDi,writeFileSync as hDi}from"node:fs";import{dirname as gDi,join as Z6}from"node:path";function fve(e,t){if(!HU(e))return"";let r=GPt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function zPt(e){if(!HU(e))return{};try{return JSON.parse(GPt(e,"utf8"))}catch{return{}}}function Wx(){return HU(Z6(Y6(),".haiku"))}function Kx(){let e=Y6(),t=Z6(e,".haiku","intents");if(!HU(t))return null;let n=ipr(t);for(let r of n){let i=Z6(t,r,"intent.md");if(!HU(i))continue;if(fve(i,"status")==="active")return Z6(t,r)}return null}function Y6(){try{return rpr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var $v=v(()=>{"use strict"});import{appendFileSync as VPt,existsSync as spr,readFileSync as opr}from"node:fs";import{join as pve}from"node:path";function apr(e){let t=pve(e,"intent.md"),n=fve(t,"active_stage");if(!n)return null;let r=pve(e,"stages",n,"state.json"),i=zPt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function cpr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=Kx();if(!i||apr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=pve("/tmp",`context-monitor-${o}`),c="";spr(a)&&(c=opr(a,"utf8")),s<=25?c.includes("25")||(VPt(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")||(VPt(a,`35 +`)}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 WPt,KPt=v(()=>{"use strict";ry();$v();WPt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await cpr(e,t.pluginRoot)}}});function upr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return hve.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(hve.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(hve.some(s=>i.includes(s)))return!0}}return!1}var hve,ZPt,YPt=v(()=>{"use strict";ry();$v();hve=["file has not been read yet","file has not been read in this session","read it first before writing to it"];ZPt={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(!Wx())return;let n=e??{};if(!upr(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 lpr}from"node:child_process";import{existsSync as dpr}from"node:fs";import{join as JPt,resolve as fpr}from"node:path";function ppr(e){process.stderr.write(e)}function hpr(e){try{let t=lpr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:JPt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(dpr(JPt(n,r)))return!0;return!1}catch{return!1}}function mpr(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 gpr(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 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: "..." } (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 ypr(e){if(!Wx())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=fpr(process.cwd(),r),s=mpr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||hpr(process.cwd())||(ppr(gpr(t,s)),process.exit(2)))}var XPt,QPt=v(()=>{"use strict";$v();ry();XPt={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 ypr(e)}}});import{join as $Pt}from"node:path";function Spr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function Epr(){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 bpr(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||$Pt(process.env.HOME||"",".claude"),s=Spr(process.cwd());n.state_file=$Pt(i,"projects",s,r,"haiku.json")}n._session_context=Epr(),process.stdout.write(JSON.stringify(n))}var eCt,tCt=v(()=>{"use strict";ry();eCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await bpr(e)}}});async function Tpr(e,t){if(!Wx())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||"";_pr.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 _pr,nCt,rCt=v(()=>{"use strict";ry();$v();_pr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;nCt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await Tpr(e,t.pluginRoot)}}});import{existsSync as vpr}from"node:fs";import{join as Apr}from"node:path";function Rpr(){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 wpr(e,t){if(e.tool_name!=="EnterPlanMode"||!Rpr()||!sh()||Kx())return;let n=Y6();if(!vpr(Apr(n,".haiku")))return;let r=CP("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: @@ -1636,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 iCt,sCt=v(()=>{"use strict";Sf();ry();$v();iCt={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 wpr(e,t.pluginRoot)}}});import{resolve as kpr}from"node:path";async function Ipr(e){if(!Kx())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 n6(kpr(process.cwd(),i))}var oCt,aCt=v(()=>{"use strict";O_e();ry();$v();oCt={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 Ipr(e)}catch{}}}});import{existsSync as cCt,readdirSync as xpr}from"node:fs";import{join as mve}from"node:path";function Opr(){let e=mve(process.cwd(),".haiku","intents");if(!cCt(e))return null;let t=xpr(e).filter(n=>cCt(mve(e,n,"intent.md")));return t.length===1?mve(e,t[0]):null}async function Npr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!Opr())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 uCt,lCt=v(()=>{"use strict";ry();uCt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await Npr(e,t.pluginRoot)}}});var fCt={};Rr(fCt,{__HOOK_REGISTRY:()=>Upr,runHook:()=>Lpr});import{readFileSync as Ppr}from"node:fs";function Dpr(){try{return Ppr(0,"utf8")}catch{return""}}async function Lpr(e,t){if(Mpr.has(e))return;let n=Cpr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=Dpr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),y3e)),o=s();await n.handle(i,{pluginRoot:o})}var dCt,Cpr,Mpr,Upr,pCt=v(()=>{"use strict";KPt();YPt();QPt();tCt();rCt();sCt();aCt();lCt();dCt=[WPt,ZPt,XPt,eCt,nCt,iCt,oCt,uCt],Cpr=new Map(dCt.map(e=>[e.name,e])),Mpr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);Upr=dCt});var gCt={};Rr(gCt,{runMigrate:()=>Bpr});import{execSync as Fpr}from"node:child_process";import{cpSync as qU,existsSync as iy,mkdirSync as Zx,readdirSync as hCt,readFileSync as jpr,writeFileSync as Yx}from"node:fs";import{basename as gve,join as xn}from"node:path";function mCt(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 Hpr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function yve(e){try{let{execSync:t}=Z("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}=Z("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 Bpr(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(!iy(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=hCt(u).filter(_=>{let T=xn(u,_);return iy(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/: @@ -1650,91 +1648,91 @@ Usage: haiku migrate --apply # actually write haiku migrate --all --apply # actually write everything`)}if(s&&n.length>0)throw new Error(`--all is incompatible with explicit slug(s): ${n.join(", ")} -Pick one: name slugs OR pass --all.`);if(n.length>0){let _=n.filter(T=>!d.includes(T));if(_.length>0){let T=d.map(A=>` ${A}`).join(` +Pick one: name slugs OR pass --all.`);if(n.length>0){let _=n.filter(T=>!d.includes(T));if(_.length>0){let T=d.map(R=>` ${R}`).join(` `);throw new Error(`unknown intent slug(s): ${_.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 _ of d)for(let T of f)if(_.endsWith(T)){let A=_.slice(0,-T.length);d.includes(A)&&(p.has(A)||p.set(A,[]),p.get(A)?.push(_),h.add(_))}for(let _ of d)if(!h.has(_)){for(let T of m)if(_.endsWith(T)){let A=_.slice(0,-T.length);d.includes(A)&&y.set(_,A)}}if(p.size>0){console.log(`Detected ${p.size} multi-pass intent group(s):`);for(let[_,T]of p)console.log(` ${_} \u2190 [${T.join(", ")}]`);console.log()}if(y.size>0){console.log(`Detected ${y.size} follow-up intent(s):`);for(let[_,T]of y)console.log(` ${_} follows ${T}`);console.log()}let g=d.filter(_=>!h.has(_));if(n.length>0){let _=n.filter(T=>h.has(T));if(_.length>0){let T=_.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: ${_.join(", ")} +${T}`)}}let f=["-dev","-product","-design","-tests"],p=new Map,h=new Set,m=["-followup","-v2","-phase2"],g=new Map;for(let _ of d)for(let T of f)if(_.endsWith(T)){let R=_.slice(0,-T.length);d.includes(R)&&(p.has(R)||p.set(R,[]),p.get(R)?.push(_),h.add(_))}for(let _ of d)if(!h.has(_)){for(let T of m)if(_.endsWith(T)){let R=_.slice(0,-T.length);d.includes(R)&&g.set(_,R)}}if(p.size>0){console.log(`Detected ${p.size} multi-pass intent group(s):`);for(let[_,T]of p)console.log(` ${_} \u2190 [${T.join(", ")}]`);console.log()}if(g.size>0){console.log(`Detected ${g.size} follow-up intent(s):`);for(let[_,T]of g)console.log(` ${_} follows ${T}`);console.log()}let y=d.filter(_=>!h.has(_));if(n.length>0){let _=n.filter(T=>h.has(T));if(_.length>0){let T=_.map(R=>{for(let[A,x]of p)if(x.includes(R))return`${R} \u2192 ${A}`;return R});throw new Error(`merged sub-intent(s) cannot be migrated directly: ${_.join(", ")} Migrate the base intent instead \u2014 sub-intents fold in automatically: ${T.join(` - `)}`)}}let E=n.length>0?g.filter(_=>n.includes(_)):g;if(!i&&!o){let _=null;try{_=Fpr("git status --porcelain",{encoding:"utf8",cwd:c,timeout:5e3}).trim()}catch{}if(_)throw new Error(`refusing to apply with uncommitted changes in the working tree. + `)}`)}}let b=n.length>0?y.filter(_=>n.includes(_)):y;if(!i&&!o){let _=null;try{_=Ehr("git status --porcelain",{encoding:"utf8",cwd:c,timeout:5e3}).trim()}catch{}if(_)throw new Error(`refusing to apply with uncommitted changes in the working tree. Commit or stash first, or pass --allow-dirty. -${_}`)}console.log(`Found ${d.length} intent(s) in .ai-dlc/ (${g.length} primary, ${h.size} merged). -Migrating ${E.length} primary intent(s)${i?" (DRY RUN \u2014 pass --apply to write)":""}. -`);let S=0,b=0;for(let _ of E){let T=xn(u,_),A=xn(l,_);if(iy(A)){let ee=iy(xn(A,"stages"));if(ee&&!a){console.log(` SKIP: ${_} (already migrated with stages)`),b++;continue}ee||console.log(` RE-MIGRATE: ${_} (missing stages \u2014 upgrading)`)}let{data:R,body:x}=mCt(xn(T,"intent.md")),k=R.status||"active",N=x.match(/^# (.+)$/m)?.[1]||_,P=y.get(_)||"",C=yve(xn(T,"intent.md")),F=qpr(T),V=R.created||"",K=C||(V?`${V}T00:00:00Z`:Hpr()),$=k==="completed"||k==="complete"?F||K:null;if(i){console.log(` DRY RUN: ${_} (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(_)||[],q={"-dev":"development","-product":"product","-design":"design","-tests":"development"};for(let ee of M){let ie=xn(u,ee),Me=f.find(Ae=>ee.endsWith(Ae))||"";G.push({dir:ie,defaultStage:q[Me]||"development"})}let U=new Map,D=0;for(let{dir:ee,defaultStage:ie}of G){let Me=hCt(ee).filter(Ae=>Ae.startsWith("unit-")&&Ae.endsWith(".md"));for(let Ae of Me){let{data:z,body:J}=mCt(xn(ee,Ae)),oe=z.pass||"",le=oe?X[oe]||"development":ie||"development";U.has(le)||U.set(le,[]),U.get(le)?.push({file:Ae,fm:z,body:J}),D++}if(ee!==T){if(iy(xn(ee,"discovery.md"))){let Ae=gve(ee);i||qU(xn(ee,"discovery.md"),xn(A,"knowledge",`${Ae}-discovery.md`))}if(iy(xn(ee,"mockups"))&&!i){let Ae=xn(A,"stages","design","artifacts");Zx(Ae,{recursive:!0});try{qU(xn(ee,"mockups"),Ae,{recursive:!0})}catch{}}}}let H=R.active_pass||"",j=H&&X[H]||"",W=R.epic||"";if(k==="completed"||k==="complete"){Yx(xn(A,"intent.md"),`--- -title: "${N}" +${_}`)}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=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] mode: continuous active_stage: security status: completed -started_at: ${K} -completed_at: ${$}${W?` -epic: ${W}`:""}${P?` -follows: ${P}`:""} +started_at: ${W} +completed_at: ${$}${Y?` +epic: ${Y}`:""}${N?` +follows: ${N}`:""} --- ${x} -`);for(let ie of B)Zx(xn(A,"stages",ie,"units"),{recursive:!0}),Yx(xn(A,"stages",ie,"state.json"),`${JSON.stringify({stage:ie,status:"completed",phase:"gate",started_at:`${K}`,completed_at:`${$}`,gate_entered_at:null,gate_outcome:"advanced"},null,2)} -`);for(let[ie,Me]of U){Zx(xn(A,"stages",ie,"units"),{recursive:!0});for(let{file:Ae,fm:z,body:J}of Me){let oe=z.status||"pending",le=z.depends_on||[],_e=z.discipline||"fullstack",wt=z.last_updated||yve(xn(T,Ae))||null,Ue=z.ticket||"",Ln=z.branch||"";Yx(xn(A,"stages",ie,"units",Ae),`--- -name: ${gve(Ae,".md")} -type: ${_e} +`);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(", ")}] bolt: 0 hat: ""${Ue?` ticket: ${Ue}`:""}${Ln?` branch: ${Ln}`:""} -started_at: ${wt||"null"} -completed_at: ${oe==="completed"&&wt||"null"} +started_at: ${kt||"null"} +completed_at: ${oe==="completed"&&kt||"null"} --- ${J} -`)}}let ee=M.length>0?` [merged: ${M.join(", ")}]`:"";console.log(` MIGRATED: ${_} (completed, ${D} units across ${U.size} stage(s))${ee}`)}else{let ee=B.filter(Ae=>(!U.has(Ae)&&Ae!==j,!1)),ie=B.find(Ae=>U.has(Ae))||"";Yx(xn(A,"intent.md"),`--- -title: "${N}" +`)}}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] mode: continuous -active_stage: ${ie||'""'} +active_stage: ${se||'""'} status: active -started_at: ${K} -completed_at: null${W?` -epic: ${W}`:""}${P?` -follows: ${P}`:""} +started_at: ${W} +completed_at: null${Y?` +epic: ${Y}`:""}${N?` +follows: ${N}`:""} --- ${x} -`);for(let Ae of B)Zx(xn(A,"stages",Ae,"units"),{recursive:!0}),U.has(Ae)&&Yx(xn(A,"stages",Ae,"state.json"),`${JSON.stringify({stage:Ae,status:Ae===ie?"active":"pending",phase:Ae===ie?"execute":"",started_at:K,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 _e=oe.status||"pending",wt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Ln=oe.last_updated||yve(xn(T,J))||null,lr=oe.ticket||"",sn=oe.branch||"";Yx(xn(A,"stages",Ae,"units",J),`--- -name: ${gve(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: ${_e} -depends_on: [${wt.join(", ")}] +status: ${Ee} +depends_on: [${kt.join(", ")}] bolt: 0 hat: ""${lr?` ticket: ${lr}`:""}${sn?` branch: ${sn}`:""} started_at: ${Ln||"null"} -completed_at: ${_e==="completed"&&Ln||"null"} +completed_at: ${Ee==="completed"&&Ln||"null"} --- ${le} -`)}let Me=M.length>0?` [merged: ${M.join(", ")}]`:"";console.log(` MIGRATED: ${_} (active, stage: ${j||"inception"}, ${D} units across ${U.size} stage(s))${Me}`)}if(iy(xn(T,"discovery.md"))&&qU(xn(T,"discovery.md"),xn(A,"knowledge","DISCOVERY.md")),iy(xn(T,"knowledge")))try{qU(xn(T,"knowledge"),xn(A,"knowledge"),{recursive:!0})}catch{}if(iy(xn(T,"mockups"))){let ee=xn(A,"stages","design","artifacts");Zx(ee,{recursive:!0});try{qU(xn(T,"mockups"),ee,{recursive:!0})}catch{}}S++}console.log(` -Migration complete: ${S} migrated, ${b} 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 yCt=v(()=>{"use strict"});function Kpr(e,t){return t?Qr.gate:Qr[e]??Qr.execute}function bCt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(k,N)=>n?`${k}${N}${Qr.reset}`:N,i=r(Qr.brand,Gpr),s=r(Qr.brand,"\u2B22"),o=r(Qr.intent,e.intent),a=e.studio?r(Qr.dim,e.studio):"",c=Kpr(e.phaseKind,e.gated),u=e.phaseTrack===null?"":Array.from({length:e.phaseTrack.total},(k,N)=>{let P=e.phaseTrack.index;return Nk.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}`:Wpr(e.actualPhase):"",y=m?`${m} ${h}`:h,g=[l,d,u,p,y].filter(Boolean).join(" "),E=e.aggregate?r(e.phaseKind==="blocked"?Qr.blocked:Qr.dim,e.aggregate):"",S=r(Qr.dim,"\xB7"),b=[`${i} ${s} ${o}`];a&&b.push(a),b.push(g),E&&b.push(E);let _=b.join(` ${S} `),T=k=>{let N=k.severity===void 0?null:k.severity?zpr[k.severity]:Vpr,P=N?N.pips:ECt;if(!n){let V=k.segments.map($=>$==="pending"?"\u25B1":"\u25B0").join("");return`${N?`${N.mark} `:""}${k.id} ${V}`}let C=k.segments.map(V=>`${P[V]}${V==="pending"?"\u25B1":"\u25B0"}`).join("");return`${N?N.bg:Qr.chipBg} ${Qr.chipLabel}${k.id} ${C} ${Qr.reset}`},A=k=>{let N=SCt[k.status]??SCt.pending;return n?`${N.bg}${N.fg} ${k.id}${N.mark} ${Qr.reset}`:`${k.id}${N.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?`${_} -${r(Qr.dim,"\u21B3")} ${x}`:_}var Gpr,BU,ECt,J6,SCt,zpr,Vpr,Wpr,Qr,_Ct=v(()=>{"use strict";Gpr="H\xB7AI\xB7K\xB7U",BU="\x1B[1;38;2;255;255;0m",ECt={done:"\x1B[38;5;71m",active:BU,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},J6="\x1B[38;5;240m",SCt={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"}},zpr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:BU,rejected:"\x1B[1;38;5;52m",pending:J6}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:BU,rejected:"\x1B[1;38;5;88m",pending:J6}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:BU,rejected:"\x1B[1;38;5;88m",pending:J6}},low:{bg:"\x1B[48;5;254m",mark:".",pips:ECt}},Vpr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:BU,rejected:"\x1B[1;38;5;124m",pending:J6}},Wpr=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",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 Zpr}from"node:child_process";import{existsSync as sy,readdirSync as Jx,readFileSync as Ypr,statSync as Jpr}from"node:fs";import{join as Rc}from"node:path";function Xx(e){if(!sy(e))return null;try{return re(Ypr(e,"utf8")).data}catch{return null}}function Xpr(){try{return Zpr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function Qpr(e){let t=Rc(e,"intents");if(!sy(t))return null;let r=Xpr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(sy(Rc(t,o,"intent.md")))return o}let i;try{i=Jx(t).filter(o=>{try{return Jpr(Rc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=Xx(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 Eve(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 ehr(e){return!!e&&Eve(e)===""&&$pr.has(e.kind)}function Sve(e){return e==="cross-stage-consistency"?"cross-stage":e}function thr(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":`${Sve(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${Sve(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":`${Sve(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 TCt(e,t,n,r){let i=Rc(r,"stages",n,"units");if(!sy(i))return{done:0,total:0};let s=bs(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of Jx(i).filter(l=>l.endsWith(".md"))){let l=Xx(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 vCt(e,t){let n=t?Rc(e,"stages",t,"feedback"):Rc(e,"feedback");if(!sy(n))return{closed:0,total:0};let r=0,i=0;for(let s of Jx(n).filter(o=>o.endsWith(".md"))){let o=Xx(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 wCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function nhr(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 kCt(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"&&ACt.has(c)?"done":typeof c=="string"&&rhr.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"&&ACt.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 Jx(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=Xx(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-${wCt(a)}`,segments:kCt(u,i,l)})}return o}function RCt(e,t){if(!sy(e)||t.length===0)return[];let n=[];for(let r of Jx(e).filter(i=>i.endsWith(".md")).sort()){let i=Xx(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-${wCt(r)}`,segments:kCt(a,t,a.length>0),severity:c})}return n}function ICt(){let e;try{e=ve()}catch{return null}let t=Qpr(e);if(!t)return null;let n=pe(t),r=Xx(Rc(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=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(N=>({name:N,status:"done"})),activeStage:"",phaseLabel:"sealed",phaseKind:"sealed",gated:!1,aggregate:"",phaseTrack:null,itemBars:null,agentChips:null};let u=null,l=tkt(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"&&!Eve(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=thr(u),h=ehr(u),m=h?"":Eve(u)||ai(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&&R0(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}=TCt(t,i,g,n);P>0&&(E=`${N}/${P} units`);try{let C=Eg(n,g);if(C.length>0){let{unitWave:F,totalWaves:V}=HI(C);if(V>1){let K=qI(C,F,V);E=`${E||`${P} units`} \xB7 wave ${K+1}/${V}`}}}catch{}}else if(d==="fixloop"){let N=g?vCt(n,g):{closed:0,total:0},P=vCt(n,""),C=N.total+P.total,F=N.closed+P.closed,V=C-F;V>0?E=`${V} open`:C>0&&(E="closing")}else if((d==="review"||d==="approve"||d==="gate")&&g){let{total:N}=TCt(t,i,g,n);N>0&&(E=`${N} units`)}else d==="elaborate"&&(E="decomposing");let S=null,b="",_=null;try{if(_=ZY({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),_.total>0){let N;if(d==="fixloop"){let P=-1;for(let C=_.steps.length-1;C>=0;C--)if(_.steps[C].status!=="pending"){P=C;break}N=P>=0?P:_.index}else{let P=KY(u,_.steps);N=P>=0?P:_.index}S={index:N,total:_.total},d==="fixloop"&&(b=_.steps[N]?.label??"")}}catch{S=null,_=null}let T=null;if(d==="execute"&&g){let N=ihr(i,g,n);N.length>0&&(T=N)}else if(d==="fixloop"){let N=[];g&&N.push(...RCt(Rc(n,"stages",g,"feedback"),Sg(i,g))),N.push(...RCt(Rc(n,"feedback"),Uf(i))),N.sort((P,C)=>Yc(P.severity)-Yc(C.severity)),N.length>0&&(T=N.slice(0,av))}let A=null;if(_&&(d==="review"||d==="approve")&&NEe(u)){let N=DTt({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),P=h?"intent-review:":d==="review"?"review:":"approve:",C=N.filter(F=>F.key.startsWith(P)&&!OEe.has(PTt(F.key))).map(F=>({id:nhr(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(N=>N.signal==="conversation"||N.signal==="verify_conversation");if(!A&&u&&u.kind==="elaborate_loop"&&!k&&g&&i)try{let P=no(i,g).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("/")?sy(K)&&Jx(K).filter($=>$!==".gitkeep").length>0:sy(K)}return{id:C.name,status:V?"done":"active"}});P.length>0&&P.some(C=>C.status==="active")&&(A=P)}catch{}if(!A&&u&&u.kind==="elaborate_loop"&&!k){let N=new Set(x.map(F=>F.signal).filter(F=>!!F)),P=[{signal:"decompose",label:"decompose"},{signal:"verify_decompose",label:"verify"}],C=P.findIndex(F=>N.has(F.signal));C!==-1&&(A=P.map((F,V)=>({id:F.label,status:V{"use strict";ns();E4();xa();CEe();ji();ze();Kn();Pbe();$pr=new Set(["intent_review","record_reflection","seal_intent","sealed"]);ACt=new Set(["advance","advanced","closed"]),rhr=new Set(["reject","rejected"])});var DCt={};Rr(DCt,{resolveFallbackCommand:()=>CCt,runStatusline:()=>yhr});import{execFileSync as shr}from"node:child_process";import{existsSync as tA,mkdirSync as OCt,readFileSync as GU,writeFileSync as _ve}from"node:fs";import{homedir as X6}from"node:os";import{dirname as Tve,join as Qu}from"node:path";function ohr(){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 NCt(e){let t=e;for(let n=0;n<30;n++){let r=Qu(t,".haiku");if(tA(r))return r;let i=Tve(t);if(i===t)break;t=i}return null}function ahr(e,t=X6()){let n=[],r=NCt(e);r&&n.push(Qu(r,zU)),n.push(Qu(t,".haiku",zU));for(let i of n)if(tA(i))try{return JSON.parse(GU(i,"utf8"))}catch{}return null}function chr(e){return e?PCt(e.statusLine):null}function PCt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function bve(e){return e.includes("statusline")&&e.includes("haiku")}function uhr(e){if(!tA(e))return null;try{let t=JSON.parse(GU(e,"utf8"));return PCt(t.statusLine)}catch{return null}}function lhr(e){let t=NCt(e);return t?Tve(t):e}function CCt(e,t=X6()){let n=chr(ahr(e,t)),r=lhr(e),i=[Qu(r,".claude","settings.local.json"),Qu(r,".claude","settings.json"),Qu(t,".claude","settings.json")];for(let s of i){let o=uhr(s);if(o){if(bve(o)){if(n&&!bve(n))return n;continue}return o}}return n&&!bve(n)?n:null}async function dhr(){let e=await ohr(),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=ICt()}catch(s){n&&process.stderr.write(`[haiku statusline] resolveStatuslineState threw: ${s instanceof Error?`${s.message} +`)}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,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(bCt(r));return}let i=CCt(t);if(i)try{let s=shr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function phr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function hhr(){let e=nn();if(e&&phr(e))return`npx -y ${fhr} statusline`;if(e){let t=Qu(e,"bin","haiku");if(tA(t))return`${t} statusline`}return"haiku statusline"}function MCt(e,t){return e?{settingsPath:Qu(X6(),".claude","settings.json"),haikuDir:Qu(X6(),".haiku")}:{settingsPath:Qu(t,".claude","settings.json"),haikuDir:Qu(t,".haiku")}}function mhr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=MCt(t,n),s={};if(tA(r))try{s=JSON.parse(GU(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=hhr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||(OCt(i,{recursive:!0}),_ve(Qu(i,zU),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},OCt(Tve(r),{recursive:!0}),_ve(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)":Qu(i,zU)}`)}function ghr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=MCt(t,n);if(!tA(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(GU(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=Qu(i,zU),a=null;if(tA(o))try{a=JSON.parse(GU(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,_ve(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 yhr(e){let t=e[0];return t==="install"?mhr(e.slice(1)):t==="uninstall"?ghr(e.slice(1)):dhr()}var zU,fhr,LCt=v(()=>{"use strict";Ci();_Ct();xCt();zU="statusline-fallback.json";fhr="@haiku/haiku"});ih();process.on("uncaughtException",e=>{ms(e,{context:"uncaughtException"}),console.error("uncaughtException:",e),yf().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),yf().finally(()=>process.exit(1))});var[Q6,...Ep]=process.argv.slice(2);if(Q6==="mcp"){let e=Promise.resolve().then(()=>(T3e(),_3e)).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)}`),yf().finally(()=>process.exit(1)))),t="",n=[];for(let i=0;i(Sf(),v3e)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(BPt(),npr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),yf().finally(()=>process.exit(1))})}else if(Q6==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(pCt(),fCt)).then(t=>t.runHook(e,Ep.slice(1))).catch(t=>{ms(t,{context:`hook:${e}`}),console.error(`haiku hook ${e}: ${t.message}`),yf().finally(()=>process.exit(1))})}else Q6==="migrate"?Promise.resolve().then(()=>(yCt(),gCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),yf().finally(()=>process.exit(1))}):Q6==="statusline"?Promise.resolve().then(()=>(LCt(),DCt)).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)}`),yf().finally(()=>process.exit(0))}):(console.error("Usage: haiku [args...]"),process.exit(1)); + 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: toad-cache/dist/toad-cache.cjs: @@ -1776,17 +1774,6 @@ strip-bom-string/index.js: * Released under the MIT License. *) -react/cjs/react-jsx-runtime.production.js: - (** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - *) - react/cjs/react.production.js: (** * @license React @@ -1808,15 +1795,4 @@ react/cjs/react.development.js: * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) - -react/cjs/react-jsx-runtime.development.js: - (** - * @license React - * react-jsx-runtime.development.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - *) */ 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..dc6353a1d --- /dev/null +++ b/plugin/prompts/intent/seal/pending_seal/template.eta.md @@ -0,0 +1,15 @@ +# 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. + +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. 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/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/IntentDetailView.tsx b/website/app/browse/components/IntentDetailView.tsx index f84f6bccc..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 { @@ -233,8 +235,10 @@ export function IntentDetailView({ intentSlug={intent.slug} intentTitle={intent.title} intentMode={intent.mode} + studio={intent.studio} schemaIsV4={isV4Intent(intent.raw)} provider={provider} + intentBranch={intent.branch} assets={intent.assets} host={host || undefined} feedback={unitFeedback} @@ -517,6 +521,7 @@ export function IntentDetailView({ provider={provider} providerName={provider.name} slug={intent.slug} + intentBranch={intent.branch} studio={intent.studio} host={host || undefined} project={location?.project || ""} @@ -569,7 +574,11 @@ export function IntentDetailView({

Intent Approvals

- + )} @@ -1171,7 +1180,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 +1329,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 +1376,7 @@ function UnitOutputsSection({ host={host} provider={provider} slug={slug} + intentBranch={intentBranch} /> ))}
@@ -1383,12 +1394,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 +1434,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 +1450,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,32 +1473,25 @@ function LazyOutputPreview({ }) } })() - }, [open, provider, path, slug]) + }, [open, provider, path, slug, intentBranch]) return ( -
+ <> {open && ( -
- {state.loading && ( -

Loading…

- )} + setOpen(false)}> + {state.loading &&

Loading…

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

{state.error}

)} @@ -1497,95 +1503,122 @@ 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}
+
) } -/** 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} + /> ) } @@ -1642,6 +1675,7 @@ function StageDetail({ provider, providerName, slug, + intentBranch, studio, host, project, @@ -1652,6 +1686,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 +1704,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 +1971,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 +2382,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 ( @@ -2490,9 +2533,9 @@ function FeedbackCard({ {resolutionBadge.label} )} - {fb.origin && ( + {(fb.author ?? fb.origin) && ( - {fb.origin} + {fb.author ?? fb.origin} )} ` 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 @@ -19,117 +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" } -/** 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. */ +/** 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 ( +
+
+ {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 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. -
    - - {it.hat ?? "—"} - - {it.result && ( - - {it.result} - - )} - {it.commit && ( - - {it.commit.slice(0, 7)} - - )} -
    - {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. -
    - {typeof it.bolt === "number" && ( - - bolt {it.bolt} - - )} - - {it.hat ?? "—"} - - {it.result && ( - - {it.result} - - )} -
    - {handoff && ( -

    - {handoff} -

    - )} -
  2. - ) - })} -
+
) } 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/PortfolioView.tsx b/website/app/browse/components/PortfolioView.tsx index f549a7435..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 (
+ {(intent.createdAt || intent.startedAt) && ( + + Created:{" "} + + {formatDate(intent.createdAt ?? intent.startedAt)} + + + )} {intent.branch && ( -
-
-
-
-
-
- {[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/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 bba403a3c..ae6dab4dc 100644 --- a/website/app/browse/components/UnitDetailView.tsx +++ b/website/app/browse/components/UnitDetailView.tsx @@ -1,5 +1,6 @@ "use client" +import matter from "gray-matter" import { useEffect, useState } from "react" import ReactMarkdown from "react-markdown" import remarkGfm from "remark-gfm" @@ -15,12 +16,19 @@ 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" import { RESOLUTION_BADGES } from "./feedback-badges" import { FixHistory, HatHistory } from "./IterationHistory" import { RenderedHtmlFrame } from "./RenderedHtmlFrame" +import { SignOffGroup } from "./SignOffGroup" +import type { QualityGate } from "./studio-defs" function titleCase(s: string): string { return s @@ -37,6 +45,22 @@ function splitUnitName(name: string): { badge: string | null; title: string } { return { badge: null, title: titleCase(name) } } +/** Serialize unit frontmatter to YAML (its on-disk format) for the raw-FM + * accordion. Uses gray-matter's stringify (already the website's YAML lib) + * and strips the `---` fences so it reads as a plain YAML doc. Falls back to + * pretty JSON if a value can't be dumped. */ +function frontmatterYaml(raw: Record): string { + try { + return matter + .stringify("", raw) + .replace(/^---\n/, "") + .replace(/\n---\s*$/, "") + .trimEnd() + } catch { + return JSON.stringify(raw, null, 2) + } +} + const FIELD_LABELS: Record = { ticket: "Ticket", epic: "Epic", @@ -54,11 +78,18 @@ interface Props { /** Intent mode (autopilot drops the user gate) — drives the expected * review/approval role set in the sign-offs section. */ intentMode: string + /** Studio slug — links each non-engine review/approval role to its studio + * definition on the stage page. */ + studio: string /** Whether the intent is v4+ (has the review/approval model). v3 units * predate it — the sign-offs section then shows only what's stamped * 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[] @@ -73,7 +104,9 @@ export function UnitDetailView({ stageName, intentSlug, intentMode, + studio, provider, + intentBranch, assets = [], host, feedback = [], @@ -145,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 @@ -186,20 +228,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 */} @@ -264,6 +323,8 @@ export function UnitDetailView({ unit={unit} intentMode={intentMode} schemaIsV4={schemaIsV4} + studio={studio} + stageName={stageName} /> {/* Feedback targeting this unit */} @@ -306,6 +367,7 @@ export function UnitDetailView({ paths={unit.inputs} intentSlug={intentSlug} provider={provider} + intentBranch={intentBranch} /> )} @@ -316,6 +378,7 @@ export function UnitDetailView({ paths={unit.outputs} intentSlug={intentSlug} provider={provider} + intentBranch={intentBranch} /> )} @@ -325,6 +388,7 @@ export function UnitDetailView({ refs={unit.refs} intentSlug={intentSlug} provider={provider} + intentBranch={intentBranch} assets={assets} host={host} /> @@ -404,15 +468,19 @@ export function UnitDetailView({ {/* Hat history — per-hat handoffs as the unit walked its sequence */} - {/* Frontmatter Debug (collapsed) */} + {/* Frontmatter Debug (collapsed) — rendered as syntax-highlighted YAML + (the on-disk format) rather than raw JSON. */} {Object.keys(unit.raw).length > 0 && (
Raw frontmatter -
-						{JSON.stringify(unit.raw, null, 2)}
-					
+
+ +
)}
@@ -465,9 +533,9 @@ function UnitFeedbackCard({ fb }: { fb: HaikuFeedback }) { {resolutionBadge.label} )} - {fb.origin && ( + {(fb.author ?? fb.origin) && ( - {fb.origin} + {fb.author ?? fb.origin} )} ) } @@ -637,10 +690,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 +710,7 @@ function TextRefItem({ if (content === null) { const raw = await provider.readFile( `.haiku/intents/${intentSlug}/${ref_}`, + intentBranch, ) setContent(raw || "(empty)") } @@ -774,9 +830,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. + )}
@@ -956,16 +1013,43 @@ 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(" ") +/** 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] + : [], + ) +} + +/** 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 } /** @@ -981,10 +1065,14 @@ function SignOffsSection({ unit, intentMode, schemaIsV4, + studio, + stageName, }: { unit: HaikuUnit intentMode: string schemaIsV4: boolean + studio: string + stageName: string }) { const isAutopilot = intentMode === "autopilot" const reviewsRaw = recordOf(unit.raw.reviews) @@ -1006,6 +1094,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 (

@@ -1013,79 +1102,30 @@ function SignOffsSection({

{reviews.length > 0 && ( - + )} {approvals.length > 0 && ( - + )}
) } -function SignOffGroup({ - title, - entries, -}: { - title: string - entries: Array<{ role: string; signed: boolean; signedAt: string | null }> -}) { - return ( -
-
- {title} -
-
    - {entries.map(({ role, signed, signedAt }) => ( -
  • -
    - - {signed ? ( - - ) : ( - - - {roleLabel(role)} - -
    - - {signedAt ? formatDate(signedAt) : signed ? "signed" : "pending"} - -
  • - ))} -
-
- ) -} - const OUTPUT_IMAGE_EXTS = new Set([ "png", "jpg", @@ -1118,6 +1158,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 +1212,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 +1246,18 @@ function ArtifactsSection({ ) : ( ), )} @@ -1191,15 +1275,17 @@ function ArtifactsSection({ ) : ( ), )} @@ -1214,24 +1300,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 ( <>
+
+
⏳ 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 ? { diff --git a/website/lib/browse/github-provider.ts b/website/lib/browse/github-provider.ts index 08a49f68b..f86524f7b 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, @@ -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" @@ -111,6 +114,83 @@ 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 + > + 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( + `${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" @@ -123,10 +203,10 @@ export class GitHubProvider implements BrowseProvider { * can't reach parent-origin blob URLs or attach an auth header. Mirrors * the artifact rawUrl scheme used at session build * (raw.githubusercontent.com////). */ - async resolveAssetUrl(path: string): Promise { + async resolveAssetUrl(path: string, ref?: string): Promise { try { - const ref = this.branch || "HEAD" - const url = `https://raw.githubusercontent.com/${this.owner}/${this.repo}/${encodeURIComponent(ref)}/${path}` + const refName = ref || this.branch || "HEAD" + const url = `https://raw.githubusercontent.com/${this.owner}/${this.repo}/${encodeURIComponent(refName)}/${path}` const headers: Record = {} if (this.token) headers.Authorization = `Bearer ${this.token}` const res = await fetch(url, { headers }) @@ -156,13 +236,14 @@ export class GitHubProvider implements BrowseProvider { return result as T | undefined } - async readFile(path: string): Promise { - const cacheKey = `gh:${this.owner}/${this.repo}:readFile:${path}` + async readFile(path: string, ref?: string): Promise { + const expression = ref ? `${ref}:${path}` : this.expr(path) + const cacheKey = `gh:${this.owner}/${this.repo}:readFile:${expression}` const data = await this.cachedQuery<{ repository: { object: { text?: string | null } | null } | null }>( ReadFileQuery, - { owner: this.owner, name: this.repo, expression: this.expr(path) }, + { owner: this.owner, name: this.repo, expression }, cacheKey, ) return data?.repository?.object?.text ?? null @@ -190,80 +271,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, @@ -325,16 +332,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) { @@ -383,80 +435,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 } diff --git a/website/lib/browse/gitlab-provider.ts b/website/lib/browse/gitlab-provider.ts index 52cd1e1a3..5a501e249 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" @@ -19,8 +18,8 @@ import { deriveV4ActiveStage, isCollectibleStageFile, isV4Intent, - normalizeStageProgression, mergeKnowledge as mergeKnowledgeShared, + normalizeStageProgression, parseElaborationVerified, parseFeedback, parseIntentApprovals, @@ -123,6 +122,136 @@ 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) { + 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 (err) { + console.warn("[haiku-browse] raw GraphQL fetch failed:", err) + 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 + // 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) + 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 }) + }), + ) + } + return out + } + /** Ref parameter for GraphQL queries. null means HEAD (server default). */ private get ref(): string | null { return this.branch || null @@ -133,11 +262,11 @@ export class GitLabProvider implements BrowseProvider { * CSS/images load inside the sandboxed (opaque-origin) iframe, which * can't reach parent-origin blob URLs or attach an auth header. Mirrors * the artifact rawUrl scheme used at session build (files/:path/raw). */ - async resolveAssetUrl(path: string): Promise { + async resolveAssetUrl(path: string, ref?: string): Promise { try { const encodedPath = encodeURIComponent(path) - const ref = this.branch || "HEAD" - const url = `https://${this.host}/api/v4/projects/${this.encodedProject}/repository/files/${encodedPath}/raw?ref=${encodeURIComponent(ref)}` + const refName = ref || this.branch || "HEAD" + const url = `https://${this.host}/api/v4/projects/${this.encodedProject}/repository/files/${encodedPath}/raw?ref=${encodeURIComponent(refName)}` const res = await fetch(url, { headers: this.restHeaders() }) if (!res.ok) return null return blobToDataUrl(await res.blob(), mimeFromPath(path)) @@ -164,8 +293,9 @@ export class GitLabProvider implements BrowseProvider { return result as T | undefined } - async readFile(path: string): Promise { - const cacheKey = `gl:${this.host}:${this.projectPath}:readFile:${path}` + async readFile(path: string, ref?: string): Promise { + const refName = ref ?? this.ref + const cacheKey = `gl:${this.host}:${this.projectPath}:readFile:${refName ?? "HEAD"}:${path}` type ReadData = { project: { repository: { @@ -180,7 +310,7 @@ export class GitLabProvider implements BrowseProvider { } const data = await this.cachedQuery( ReadFileQuery, - { fullPath: this.projectPath, paths: [path], ref: this.ref }, + { fullPath: this.projectPath, paths: [path], ref: refName }, cacheKey, ) const nodes = data?.project?.repository?.blobs?.nodes @@ -307,67 +437,40 @@ 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 } - // 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, - }) - }, - ) - - // Filter to haiku/*/main branches and extract slugs - const mainBranches = branchNames.filter((name: string) => { - const parts = name.split("/") - return parts.length >= 2 && parts[parts.length - 1] === "main" - }) + // 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. // Step 2: Load ALL intents from default branch — the canonical catalog const defaultIntents = await this.listIntentsFromRef(null) @@ -375,73 +478,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 +591,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(), @@ -571,13 +607,40 @@ export class GitLabProvider implements BrowseProvider { const basePath = `.haiku/intents/${slug}` const refLabel = ref || "HEAD" - // Step 1: Recursive tree listing + // 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. + // 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 treeData = await this.cachedQuery( - IntentTreeQuery, - { fullPath: this.projectPath, path: basePath, ref }, - treeCacheKey, - ) + 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 }, + ) + if (treeData) + glCache.set(treeCacheKey, { data: treeData, ts: Date.now() }) + } const allBlobs = ( treeData?.project?.repository?.tree?.blobs?.nodes ?? [] @@ -758,9 +821,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, diff --git a/website/lib/browse/types.ts b/website/lib/browse/types.ts index 584aa7474..85e92a091 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 @@ -32,15 +37,20 @@ export interface BrowseProvider { getIntent( slug: string, ): Promise - /** Read a raw file from the workspace */ - readFile(path: string): Promise + /** Read a raw file from the workspace. `ref` (optional) reads from a + * specific branch/commit instead of the provider's default — the detail + * view passes the intent's `haiku//main` branch so an unmerged + * intent's artifacts/code resolve from where they actually live, not the + * default branch (where they don't exist yet). */ + readFile(path: string, ref?: string): Promise /** Resolve an intent-relative file path to a directly-usable URL (a blob * URL for local files, an authed-fetched blob URL for git providers) so * it can load inside a sandboxed `srcDoc` iframe with no base URL and no * auth header. Returns null when the file is missing/unreadable. Used to - * render an HTML output's relative assets (CSS, images). Optional — + * render an HTML output's relative assets (CSS, images). `ref` (optional) + * targets a specific branch — same rationale as readFile. Optional — * providers without it fall back to non-asset-resolved rendering. */ - resolveAssetUrl?(path: string): Promise + resolveAssetUrl?(path: string, ref?: string): Promise /** List files matching a pattern in a directory */ listFiles(dir: string): Promise /** Write a file to the workspace via commit (optional — not all providers support writes) */ @@ -204,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), @@ -214,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 }> { 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 } 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